我使用 Capybara 进行了 rspec 测试,它在本地和 browserstack 上运行良好,在 browserstack 上配置了 OS X Mavericks/Chrome 33。
当我将配置更改为 Windows 7 / IE 10 时,我在此处显示的最后一行代码中收到 ElementNotVisibleError:
find('#myIdToExpandMyList').click
#click selected one
find(:xpath, "//SomeXPATHToRepresentAValueInMyList", :visible => :all).click
发生的事情(我可以看到由于屏幕截图)是第一行代码不起作用。由于某种原因,单击此元素不起作用。
这是展开 (+) 的图像
当用户点击加号时,列表中的项目就会出现。由于单击不起作用,因此项目永远不会出现,并且上面的最后一行代码不起作用。为什么此查找/单击在 IE 10(使用 Selenium Webdriver)中不起作用?
这是展开背后的html代码:
<a id="myIdToExpandMyList" href="javascript:SomeJavscriptCallToExpandWithValues(params)">
<img src="plussign.png" alt="Expand">
</a>
更新:进一步研究这似乎与模式对话框有关。在我的情况下,我打开了一个模态对话框(设置了 z-index 并且页面的其余部分无法访问)。出于某种原因(仅在 IE 中),我无法使用水豚 find(element).click 在模式对话框上单击链接。它似乎找到了元素,否则我相信我会得到一个错误。
第二次更新:在尝试了各种事情之后(回退到 selenium、不同的 IE 版本、本机点击,没有任何效果。唯一有效的是通过 execute_script 执行 javascript。加号(href)触发一个 javascript 函数,该函数打开列表 - 我直接调用它。我不喜欢这个解决方案,所以希望有人有更好的解决方案。