如何使用seleniumjavascript点击同时具有字符串和随机数的元素


<a id="Message4217" class="btn-sm btn-danger Message" data-id="4217"><span class="icon-adjustment icon-trash"></span> Delete</a>
  1. 目标是根据选择标准删除消息

  2. 对于每条消息,它都有文本和一个随机数(即"Message4217"

  3. 我们如何选择并点击随机数

  4. 我不能使用xpath,因为每个不同的消息都会生成随机数

    //*[@id="Message4217"]
    //*[@id="Message4218"]
    
  5. 有没有办法选择这种类型的元素

最好使用以下xpath:

//a[starts-with(@id,'Message')]

或以下css

a[id^='Message']

PS:如果我们在HTML DOM中是否有唯一条目,请检查dev tools(谷歌铬(。

检查步骤:

Press F12 in Chrome->转到element部分->进行CTRL + F->然后粘贴xpath/css,看看您想要的element是否通过1/1匹配节点突出显示。

如果有第n个匹配,那么您可以将findElements与CSS的XPath一起使用,然后可以迭代或使用索引来单击按钮。

看起来这个元素可以基于两个参数来定位:

  1. 局部id
  2. 文本

如果是,它将匹配此XPath:

//a[contains(@id,'Message') and text()='Delete']

里面有一个span元素,我们也可以添加这个依赖项,这样定位器将是:

//a[contains(@id,'Message') and text()='Delete' and ./span[@class='icon-adjustment icon-trash']]

最新更新