ton*_*ung 6 c# selenium-firefoxdriver angularjs selenium-webdriver
编辑:我认为已经存在一个问题:http://code.google.com/p/selenium/issues/detail?id = 5717
所以基本上我正在使用Firefox驱动程序和div id="page-content"导致我的selenium测试失败,并且引用的问题中列出了错误:"元素当前不可见,因此可能无法与之交互"但另一个是?我能够将问题追溯到这样一个事实,即该ID具有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 =预习
<!DOCTYPE html>
<html data-ng-app="myApp">
<head lang="en">
<meta charset="utf-8">
<title>Selenium Test</title>
<!-- // DO NOT REMOVE OR CHANGE ORDER OF THE FOLLOWING // -->
<!-- bootstrap default css (DO NOT REMOVE) -->
<link rel="stylesheet" href="css/bootstrap.min.css?v=1">
<link rel="stylesheet" href="css/bootstrap-responsive.min.css?v=1">
</head>
<body>
<div data-ng-controller="MyCtrl">
<span id="added" data-ng-show="added">Added</span>
<span id="edited" data-ng-show="edited">Edited</span>
<div id="page-content" style="overflow:hidden">
<!--<div id="page-content">-->
<div class="employees view">
<button name="addNewEmployee" id="addNewEmployee" class="btn btn-primary" data-ng-click="add()">Add</button>
<button name="editEmployee" id="editEmployee" class="btn btn-primary" data-ng-click="edit()">Edit</button>
<div data-ng-controller="editCtrl" data-ng-include="'app/views/edit.html'"></div>
<div data-ng-controller="addCtrl" data-ng-include="'app/views/add.html'"></div>
</div>
</div>
</div>
<!-- JS scripts -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/0.7.2/angular-strap.min.js"></script>
<script src="app/app.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
根据 Selenium WebDriver 源代码,元素不能有overflow: hidden样式。(参考)(更新我刚刚意识到维护者已经更新了我链接到的参考中的代码,但原始的 2.33 代码确实包含了检查overflow: hidden。它刚刚针对可能的 2.34 进行了重构。)
所以,除非维护者决定反对,否则你就是 SOL。但让维护者注意到该问题的第一步是将问题添加到官方存储库中,看起来您已经完成了。
如果您无法让开发人员帮助您,一种可能的解决方案是使用 Javascript 删除溢出属性:
driver.executeScript("arguments[0].setAttribute('style', 'overflow: none;')", page_content_element)
并尝试从那里运行您的测试。
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |