使用硒动态更改python中的xpath怎么办?

时间:2018-11-18 06:30:11

标签: python python-3.x selenium selenium-webdriver xpath

我有一个xpath

//*[@id="jobs-search-box-keyword-id-ember968"]

数字968在每次重新加载后都会不断变化。 字符串的其余部分保持不变。

如何找到不断变化的xpath

3 个答案:

答案 0 :(得分:1)

您可以将部分idcontains()一起使用

//*[contains(@id, "jobs-search-box-keyword-id-ember")]

答案 1 :(得分:0)

您可以尝试在下面使用http { ... server { ... location / { index index.html index.php; } location my-vhost-name.com { root /Users/myName/Document/projectParentFolder/projectFolder; index index.html index.php; } } }

starts-with

答案 2 :(得分:0)

提供的详细信息不足以提供准确的结果。您仍然可以按照以下代码参考

//*[@id="jobs-search-box-keyword-id-ember968"]中,最后一个数字 968 不断变化。但是如果您将其设置为//*[starts-with(@id,'jobs-search-box-keyword-id-ember')],则可能会有一个以上具有相同部分的元素,即jobs-search-box-keyword-id-ember,在这种情况下,它将位于第一个匹配元素上。可能不是您所期望的

  1. 使用标签名称可以说element是ID为jobs-search-box-keyword-id-ember968的输入标签

    Xpath-//input[starts-with(@id,'jobs-search-box-keyword-id-ember')]

    CSS-input[id^='jobs-search-box-keyword-id-ember']

  2. 使用相关的父元素使其更加具体。例如,元素位于父标记<div class="container">

    Xpath- //div[@class='container']//input[starts-with(@id,'jobs-search-box-keyword-id-ember')]

    CSS-div.container input[id^='jobs-search-box-keyword-id-ember']