Java Selenium 2.0-在WebElement.click()之前使用内置滚动时处理z索引(navi)

Java Selenium 2.0 - handle z-index (navi) when using builtin scroll before WebElement .click()

本文关键字:内置 滚动 navi 索引 处理 Selenium WebElement Java click      更新时间:2023-09-26

Selenium 2.0。click()带有自动滚动功能,直到元素可见并允许点击:

WebElement box = driver.findElement( By.id( boxID ) );
box.click();

这通常很好,selenium将滚动直到出现框,然后执行单击()。

无论如何,如果存在具有更高z索引的元素,它将以org.openqa.selene.WebDriverException失败。它滚动到元素,但由于z索引较低,因此不可见。在我的案例中,导航栏位于页面顶部。

我想用javascript滚动到页面顶部来解决这个问题,这样元素就会出现在页面底部,但这可能不是最好的(甚至不是一个好的)解决方案。。。

JavascriptExecutor jse = (JavascriptExecutor)driver;
// scroll to top will make the box occur at the bottom of the page
jse.executeScript("scroll(0, -10000);");

有没有什么优雅的方法可以在整个测试套件中处理这个问题,而不需要像javascript滚动这样的破解?

 String script = String.format(" $('.items-container').scrollTo($('li#%s'))",currentId);

用这行代码运行脚本,添加需要的css或xpath