0

在此处输入图像描述

如您所见,我可以单击第一个复选框(PRODUCT-323),但无法单击第二个。经过长时间的
尝试,我发现这是因为第二个没有滚动查看(它的意图是工具设计还是错误?)。那么如何滚动此弹出 div 以确保显示第二个?

其实,我试过这个,但失败了

 ((JavascriptExecutor)driver).executeScript("document.getElementById("pupop").scrollTo(0,30)");
4

3 回答 3

1

您能分享一下您使用的是哪个版本的 WebDriver 吗?如果我没记错的话,2.16 版左右存在一个已知问题,即定位器无法滚动到视图中。原因是,他们使用元素中心的位置坐标来获得焦点,在这种情况下,中心是隐藏的。这在以后的版本中得到了解决。

有几种方法。1)尝试对完全隐藏在视图中的元素执行一些操作。这将使元素完全进入视图,您将能够访问它。在这种情况下,请尝试访问第 3 行或第 4 行的复选框,您将能够将焦点带到那里。然后进入第二行。2) 执行 Driver.Manage().Window.Maximize() [这是在 c# 中]。这也将使元素进入视野。

避免使用两个滚动条的窗口是一个好习惯。通过最大化它,您将减少此类错误的窗口。

希望这是有用的。

于 2012-12-12T06:49:20.077 回答
0

1)单击第二个复选框:您可以使用 xpath 来查找该元素。在 xpath 中,您可以轻松获取每个复选框的表行 ID,该复选框将在其 ID 中递增。2)要滚动,您可以使用以下代码:

JavascriptExecutor js = (JavascriptExecutor) webdriver;
js.executeScript("scroll(0,0);");
于 2013-07-15T13:12:07.293 回答
0

你试过键盘选项吗?ctrl+向下箭头通过脚本???或者在最坏的情况下使用选项卡来关注该复选框。我以这种方式在 OpenScript 和 RFT 中工作。

于 2012-12-12T05:22:12.210 回答