为什么Selenium Firefox驱动程序会在父进程溢出时认为我的模态没有显示:隐藏?
编辑:我认为已经存在一个问题: http : //code.google.com/p/selenium/issues/detail?id = 5717
所以基本上我使用的是Firefox驱动程序,而id="page-content"
的div导致我的selenium测试失败,并且引用的问题中列出了错误: “元素当前不可见,因此可能无法与之交互”但另一个是? 我能够将问题追溯到这样一个事实:该ID具有overflow: hidden
的css样式overflow: hidden
这是一个错误,还是我做错了什么?
我使用的是Selenium WebDriver版本:2.33.0.0,Firefox版本:22
测试和网站的来源是: https : //github.com/tonyeung/selenium-overflow-issue
为了快速参考:下面的HTML是我的测试页面。 对于那些不熟悉角度的人来说,只要你点击添加或编辑,它所做的就是显示一个html片段作为模态,你可以在这里看到一个现场演示: http : //plnkr.co/edit/LzHqxAz0f2GurbL9BGyu?p=预习
Selenium Test Added Edited <!---->
根据Selenium WebDriver源代码,元素不能有overflow: hidden
为样式。 ( 参考 )( 更新我刚刚意识到维护者已经更新了我链接到的ref中的代码,但原始的2.33代码确实包含了overflow: hidden
检查。它刚被重构为可能的2.34。)
所以,看起来除非维护者决定不这样做,否则你就是SOL。 但让维护人员注意到问题的第一步是向官方存储库添加一个问题,看起来你已经完成了。
在此期间,如果您无法让开发人员帮助您,可能的解决方案是使用Javascript删除overflow属性:
driver.executeScript("arguments[0].setAttribute('style', 'overflow: none;')", page_content_element)
并尝试从那里运行您的测试。
Interesting Posts
“元素目前不可见,因此可能无法与之交互”但另一个是?
将Angularjs表达式/变量作为路径参数传递给asp.net mvc操作链接
除非Fiddler正在运行,为什么IE11会创建空白的post请求?
SPA – Firebase和.Net WebApi 2身份validation
使用angularjs将多个对象发送到webapi
基于角色的安全性在breezejs和EF6中
在asp.net Web api和angular js中使用的身份validation方法
在转换日期时,方法’ToString’没有重载需要1个参数
如何通过angularJS和webaAPI2下载内存流对象
Angular ASP.NET MVC绑定