当我用Watir-webdriver编写blow代码时
$browser.checkbox(:index,0).click
它给出了以下错误:
元素不可见(会话信息: chrome=48.0.2564.97) (驱动程序信息: chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86_64)
然后我编写了这个代码,$browser.input(:index,0).click,然后它报告了这个错误:
未知错误:元素在点(952,17)不可点击。其他元素将收到单击:.(会话信息: chrome=48.0.2564.97) (驱动程序信息: chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86_64)
但是元素是明显可见的,而且上面给出的两行代码在watir-classic中都是干净的,我们甚至不需要滚动屏幕。
有人能告诉我为什么会这样吗?为什么这个watir-webdriver不像watir-classic那么舒服?
<td class="centred"> <label class="label-checkbox"> <input type="checkbox" data-ng-model="cover.IsSelected" class="ng-pristine ng-valid"> <div class="fake-checkbox"> <span class="glyphicon glyphicon-ok"></span> </div> </label> </td>发布于 2016-02-01 23:56:53
您需要做的第一件事是使用更新色度驱动器,因为2.9版已经2年了。该二进制文件需要与当前版本的铬保持最新。很可能单靠这一点就能解决你的问题。
如果是能见度问题..。Watir (以及Selenium和WebDriver)的目的是模仿用户的行为。如果复选框对用户不可见,则不能在测试中单击该复选框。
如果复选框最初不可见,但随后变为可见,则可以执行:browser.checkbox.when_present.click (请注意,index: 0是默认行为,并不是必需的)。
如果复选框中有一些令人兴奋的javascript的东西,它们以一种永远看不到的方式掩盖了它,并且单击可见的东西会抛出“不能单击的元素”错误,那么您可能必须执行browser.checkbox.when_present.fire_event :click --该方法不模仿用户在您的站点上实际做的事情,因此只能作为最后的手段使用。
https://stackoverflow.com/questions/35079996
复制相似问题