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

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

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

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

这通常工作正常,selenium 会滚动直到出现框,然后执行 click()。

无论如何,如果存在具有更高 z-index 的元素,它将失败并显示 org.openqa.selenium.WebDriverException。它滚动到该元素,但由于 z-index 较低,它不可见。在我的例子中,页面顶部有一个导航栏。

我想通过 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 滚动这样的 hack?

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

运行 你的脚本用这一行添加你需要的 css 或 xpath