3

在接下来的页面中,只显示了三个元素,我必须使用滚动条才能看到其他元素。
我正在使用硒网络驱动程序。
当我尝试单击“第四行”或“第五行”时,抛出了 ElementNotVisibleException。
有什么方法可以移动 scoll 条(或其他方式?)以使“第四行”和“第五行”可见,然后可点击?
带有 scoll 条的 WebElement

<b>Source code of this element:</b>
<pre>
<html><body>
<div style="WIDTH: 215px; HEIGHT: 50px; OVERFLOW: auto; background-color:#66FFCC">
<ul>
<li><div>First Row</div></li>
<li><div>Second Row</div></li>
<li><div>Third Row</div></li>
<li><div>Fourth Row</div></li>
<li><div>Fifth Row</div></li>
</ul>
</div>
</body></html>

4

2 回答 2

4

好吧,我还没有看到任何 selenium api 来做到这一点。

但有了JavaScriptExecutor你就可以做到这一点。

这是如何

//Select element by some method

WebElement we = driver.findElement(By.id("elementid"));

// create JSExecutor object

JavascriptExecutor executor = (JavascriptExecutor)driver;

// Do the JS click 

executor.executeScript("arguments[0].click();", we); 
于 2013-10-22T10:19:54.973 回答
0

第四行第五行最初不可见,您必须将鼠标悬停在其上下文之上才能使其可见.. 直接单击它的最简单方法是使用 javascriptExecuter,

((JavascriptExecutor)driver).executeScript("$('html ul li+li+li+li>div').click();");

如果您可以使用 id,name..etc 等属性,查找元素会更容易、更快、更高效。
上面的代码将点击“第四行”。

于 2013-10-22T10:30:23.933 回答