为什么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)

并尝试从那里运行您的测试。