如何解决通过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);