如何解决通过selenium访问web元素不滚动页面的问题
How to solve the issue of accessing web elements through selenium without scrolling a page
我正在尝试从 Web 访问一个元素,该元素在页面的默认视图中不可见(您需要向下滚动一点才能找到该元素)。有没有一种方法可以避免滚动,并且 selenium 从整个页面的任何地方拾取它,因为 CSS/Xpath 存在。如果我向下滚动,元素就会被识别。所以这是硒考虑的当前观点的问题。
谢谢,
房车
Selenium 需要一个在 ViewPort 中可见的元素才能在其上执行 .click()。如果您想在不滚动的情况下单击它,请使用 JavaScriptExecutor:
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", element);
您也可以通过 JavaScript 向下滚动到该元素:
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);
我正在尝试从 Web 访问一个元素,该元素在页面的默认视图中不可见(您需要向下滚动一点才能找到该元素)。有没有一种方法可以避免滚动,并且 selenium 从整个页面的任何地方拾取它,因为 CSS/Xpath 存在。如果我向下滚动,元素就会被识别。所以这是硒考虑的当前观点的问题。
谢谢, 房车
Selenium 需要一个在 ViewPort 中可见的元素才能在其上执行 .click()。如果您想在不滚动的情况下单击它,请使用 JavaScriptExecutor:
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", element);
您也可以通过 JavaScript 向下滚动到该元素:
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);