具有多个条件和获取元素值的Selenium xpath

时间:2018-12-05 12:51:44

标签: selenium xpath

我有一个条件,其中tr行生成动态值:

<tbody>
   <tr id="24686" tabindex="0">
     <td class="nowrap xh-highlight" style="padding: 3px 8px;">Available</td>
   </tr>
</tbody>

我有Xpath 1:(// tbody / tr / td [contains(text(),'Available')])[1]返回

Available 

和Xpath 2://返回的tr [1] / @ id

ld_9050427
22707

条件是我想生成一个xpath,它将返回状态为Available的第一个数字,然后返回其ID。以后我想使用相同的ID进行后续处理吗?

我尝试了类似下面的操作,但是没有用

(//tbody/tr[/@id and/td[contains(text(),'Disponible')]])[1]

2 个答案:

答案 0 :(得分:1)

如果要选择具有tr属性(任意)的id和带有文本"Available"的表格单元,请尝试

//tr[@id and td='Available']

要提取id的值以供进一步使用,您需要get_attribute/getAttribute method

答案 1 :(得分:0)

要查找状态为可用的第一个号码,然后返回其ID,可以使用以下解决方案:

  • xpath

    "//tbody//tr//td[text()='Available']/.."
    

注1: xpath 中的..指向祖先节点

注2:在寻找符合已实现条件的第一个匹配项时,您可以使用以下任一方法:

  • Python:

    find_element_by_xpath()
    
  • Java:

    findElement()
    
  • C#:

    FindElement()
    

注3:最后,您必须使用getAttribute("id") / get_attribute("id")来提取id属性的值,如下所示: