正在Web驱动程序中查找动态元素
Finding dynamic elements in webdriver
我使用的是带有eclipse/TestNG的java网络驱动程序。
我在网页上有一个名为"测试142"的元素。142总是在变化,这是一个记录的计数。我使用了partialLinkText技术,但它失败了,因为页面上还有另一个元素的名称是"Tests",所以每次我执行测试脚本时,光标都会点击第二个元素。请帮助我构建"测试142"的动态元素定位器,这可以解决我的问题。
HTML代码:
html>
<head>
<body>
<div id="errorMsgContainer" class="ui-widget-header"> </div>
<script type="text/javascript">
<style>
<div id="help" class="help">
<div class="wrapper">
<div id="header">
<div id="mainMenu">
<br clear="all">
<div class="siteWrapper">
<div id="content">
<div id="main" class="main">
<h2>
<ul id="" class="tabPane" style="padding-left:5px;">
<div class="tabPage">
<ul id="" class="tabPaneVertical" style="padding-left:5px;">
<li id="items_" class="">
<li id="items_" class="">
<li id="items_" class="active">
<div>
<a href="/test2/1/p/a/projects/project/tests/project_id/1">
Tests
<span>142</span>
</a>
<div class="children">
</div>
</li>
<li id="items_" class="">
<li id="items_" class="">
<li id="items_" class="">
<li id="items_" class="">
<li id="items_" class="">
<li id="items_" class="last">
</ul>
<div class="tabPageVertical">
<script type="text/javascript">
</div>
</div>
<div id="footer"></div>
<div class="clear"></div>
</div>
<div class="footer">Powered by 2 © 2006-2013 v1.4.9.3</div>
</div>
<script>
</div>
<div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>
</body>
</html>
谢谢。
首先,正如我在评论中提到的,HTML现在格式严重错误,因此任何直接的答案在修复后都可能是不正确的。相反,当我们寻找一个元素时,我会讨论实际发生了什么,因为我认为那里有一些混乱。
为了澄清一些术语:在示例HTML中没有名为"Tests142"的元素。有一个元素包含文本"Tests 142",但这完全不同。我们真正想要的是围绕该文本的<a>
标记(当我们检索文本时,<span>
将被忽略(,或者如果我们只对实际数字感兴趣,则需要<span>
标记。。
例如,XPath //li[@id='items_']/div/a
指向一个li
,其中id='items_'
包含一个包含超链接的div
,在这种情况下(稍微清理了HTML之后(是包含"测试142"的元素。这并不取决于链接中的实际文本;如果它说"Tests 804"或"jabberwocky",XPath仍然会匹配它。如果你只对数字感兴趣,你可以使用XPath //li[@id='items_']/div/a/span
只查看<span>
标记。
大幅减少的测试HTML:
<html>
<body>
<div class="tabPage">
<ul id="" class="tabPaneVertical" style="padding-left:5px;">
<li id="items_" class="active">
<div>
<a href="/test2/1/p/a/projects/project/tests/project_id/1">
Tests <span>142</span>
</a>
</div>
</li>
</ul>
</div>
</body>
</html>
相关文章:
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- 将动态元素绑定到函数;只剩下一个绑定
- 关于动态元素中循环中的事件
- 对动态元素使用.on()和e.stopPropagation()
- 只删除javascript中的1个动态元素
- 删除在加载dom之后创建的动态元素
- 从服务器和/或客户端加载动态元素的典型技术是什么
- IE7/8中的jQuery动态元素错误
- Jquery动态元素选择器
- AnguarJS$编译的动态元素
- 使用jQuery使动态元素可选择
- jquery在动态元素上调用日期选择器
- 如果在transclusion之后添加,为什么指令下的动态元素具有错误的作用域
- 如何使用jQuery唯一地识别具有相同id的类似动态元素
- 将单击处理程序绑定到动态元素
- 为动态元素附加事件处理程序
- 使用 jQuery 创建动态元素 单击事件始终返回 for 循环中的最后一个索引
- jQuery中的目标动态元素
- 将动态元素/行添加到 Angularjs 中的多维 Json 数组中
- Jquery 单击函数不适用于动态元素