如您所见,我可以点击第一个复选框(PRODUCT-323),但不能点击第二个。很久以后
尝试,我发现它是因为第二个没有滚动查看(它是用于工具设计还是一个bug?)。那么如何滚动这个弹出div以确保第二个显示?
实际上,我试过这个,但失败了
((JavascriptExecutor)driver).executeScript("document.getElementById("pupop").scrollTo(0,30)");
答案 0 :(得分:1)
您能否分享一下您使用的WebDriver版本? 如果我没记错的话,版本2.16左右有一个已知问题,定位器不能滚动到视图中。原因是,他们使用元素中心的位置坐标来聚焦,在这种情况下,中心被隐藏在视野之外。这在以后的版本中得到了解决。
有几种方法。 1)尝试对视图完全隐藏的元素执行某些操作。这将使元素完全进入视图,您将能够访问它。 在这种情况下,尝试访问第3行或第4行中的复选框,您将能够将焦点放在那里。然后访问第二行。 2)做一个Driver.Manage()。Window.Maximize()[这是在c#中]。这也将使元素进入视野。
避免使用两个滚动条的窗口是一个好习惯。通过最大化它,您将减少此类错误的窗口。
希望这很有用。
答案 1 :(得分:0)
你试过键盘选项吗? ctrl +向下箭头通过脚本??? 或者在最坏的情况下使用选项卡专注于该复选框..我以这种方式使用OpenScript和RFT。
答案 2 :(得分:0)
1)单击第二个复选框:您可以使用xpath查找该元素。在xpath中,您可以轻松获取每个复选框的表行ID,这些复选框的ID会增加。 2)要滚动,您可以使用以下代码:
JavascriptExecutor js = (JavascriptExecutor) webdriver;
js.executeScript("scroll(0,0);");