Selenium 元素隐藏在浮动标题后面

Ale*_*tig 5 selenium selenium-webdriver

如果需要滚动,Selenium webdriver 定位器总是将元素放在页面顶部,但它不会考虑浮动标题。目前我创建了一个解决方法

Actions actions = new Actions(this.webdriver);
actions.sendKeys(Keys.ARROW_UP).perform();
Run Code Online (Sandbox Code Playgroud)

是否有更好的解决方案告诉 webdriver 将元素居中在屏幕中间,或者与顶部有固定距离?

橙色部分来自按钮,蓝色部分是标题:

橙色隐藏按钮

小智 1

使用 javascript 将元素置于视图中。这是一个可能的解决方案:

  1. 使用 selenium api 将元素引入视口。
  2. 使用 javascript 确定该元素是否被另一个元素遮挡(浮动页眉/页脚等...)。
  3. 使用 javascript 滚动到视口的中间。

请参阅我在此处创建的 javascript 实用程序类:https ://github.com/gterre/stuff

用法...JavascriptUtils.bringIntoView(WebElement 元素);

我确信您可以根据需要修改脚本。