硒不会;t单击当前屏幕上未显示的元素

Selenium doesn't click on element that is not displayed on a current screen

本文关键字:屏幕 显示 元素 单击      更新时间:2023-09-26

我打开一个页面,让selenium点击该页面底部的按钮。该按钮不会显示在当前屏幕上(因此您必须向下滚动才能看到它)。正如我所知,当我使用Click()方法时,硒必须自动滚动到一个元素

不幸的是,当我执行Click()方法时,它只滚动到元素而没有单击它。

我在单击元素前设置断点并手动滚动到该元素时,它会很好地单击该元素。

我有Selenium Web驱动程序C#版本2.48.2

我使用ChromeDriver v.47.0.2526.106 m

在我看来,这个问题在以前的版本中已经存在了(所以,很长一段时间了),但在一些版本之前,我可以使用"滚动到元素"方法来解决这个问题现在我用的方法不起作用了

方法如下:

((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView();", webElement);

尝试使用Actions滚动

Actions action = new Actions(driver);
action.MoveToElement(elementToClick).Build().Perform();
elementToClick.Click();