Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xpath-如何查找信息_Xpath_Selenium_Webdriver_Automated Tests - Fatal编程技术网

xpath-如何查找信息

xpath-如何查找信息,xpath,selenium,webdriver,automated-tests,Xpath,Selenium,Webdriver,Automated Tests,鉴于此HTML: <tr class="even" id="district_22"> <td class="name">Virginia Beach City Public Schools</td> <td class=""><a href="/admin/districts/22" class="member_link delete_link" data-confirm="Sure?" data-method="delet

鉴于此HTML:

<tr class="even" id="district_22">
    <td class="name">Virginia Beach City Public Schools</td>
    <td class=""><a href="/admin/districts/22" class="member_link delete_link" data-confirm="Sure?" data-method="delete" rel="nofollow">Delete</a></td>
</tr>
<tr class="even" id="district_23">
    <td class="name">Virginia City City Public Schools</td>
    <td class=""><a href="/admin/districts/23" class="member_link delete_link" data-confirm="Sure?" data-method="delete" rel="nofollow">Delete</a></td>
</tr>
<tr class="even" id="district_24">
    <td class="name">Virginia Town City Public Schools</td>
    <td class=""><a href="/admin/districts/24" class="member_link delete_link" data-confirm="Sure?" data-method="delete" rel="nofollow">Delete</a></td>
</tr>
但它没有找到元素

注意:我不能使用ID,因为这些是重复测试,ID每次都会更改。

尝试以下操作:

//td[contains(text(),'Beach')]/../td/a[contains(@class,'delete_link')]
试试这个:

//td[contains(text(),'Beach')]/../td/a[contains(@class,'delete_link')]
tr[@id=“district_22”]//a[contains(@class,'delete_link')]
会更好。
看课文不好。毕竟,它可能会以其他方式进行本地化和编辑。但是,ID必须保持不变且不重复。

tr[@ID=“district\u 22”]//a[contains(@class,'delete\u link')]
会更好。

看课文不好。毕竟,它可能会以其他方式进行本地化和编辑。但是,ID必须保持不变且不重复。

我认为您希望在循环中执行自动脚本,如果是这种情况,则可以尝试以下代码:

 for(i=1,dist=22; i<-count; i++,dist++)
 {
    ....
    ....
    driver..findElement(By.xpath("//*[@id=District_"+dist+"]/..."))
 }

for(i=1,dist=22;i我认为您希望在循环中执行自动化脚本,如果是这种情况,那么您可以尝试以下代码:

 for(i=1,dist=22; i<-count; i++,dist++)
 {
    ....
    ....
    driver..findElement(By.xpath("//*[@id=District_"+dist+"]/..."))
 }

用于(i=1,dist=22;我必须解释发生了什么……xpath的第一位选择包含“beach”的td。然后它选择该td的父级,并从中选择包含包含包含“delete_link”类的链接的任何td。希望这能说明问题!只是为了解释发生了什么……xpath的第一位选择包含“delete_link”的td包含“beach”。然后它选择该td的父级,并从中选择任何包含包含包含“delete_link”类的链接的td。希望这能说明问题!很抱歉,这对我不起作用。我正在运行自动测试并在其中使用xpath。我设置并拆除了(即删除)每次都是我的对象。虽然数据库序列继续增加,但我实际上需要一种方法来按名称进行操作,而不必参考每次运行时都会更改的ID。@MichaelCurrent,我明白了。无论如何,既然您创建了项目,并且知道了项目的全名,那么就可以按全名进行操作:
td[text()='Virginia Beach City Public Schools')]/…
否则您可能会得到多个“Beach”结果抱歉,这对我不起作用。我正在运行自动测试并在其中使用xpath。我设置并删除(即删除)每次都是我的对象。虽然数据库序列继续增加,但我实际上需要一种方法来按名称进行操作,而不必参考每次运行时都会更改的ID。@MichaelCurrent,我明白了。无论如何,既然您创建了项目,并且知道了项目的全名,那么就可以按全名进行操作:
td[text()='Virginia Beach City Public Schools')]/…
否则您可能会得到多个“海滩”结果