如何使用selenium在我的网页上处理动态更改的ID?

时间:2018-03-16 03:48:25

标签: selenium xpath selenium-webdriver dynamic

这是我的代码

<mat-error class="mat-error" role="alert" id="mat-error-0">  </mat-error>
<mat-error class="mat-error" role="alert" id="mat-error-1">  </mat-error>

此处mat-error-0将在页面刷新时更改为mat-error-1,mat-error-1将更改为mat-error-2,依此类推..

我在这里没有唯一的类或角色属性。

请告知。

4 个答案:

答案 0 :(得分:1)

使用以下xpath

//mat-error[text()='Please enter a valid To date']
//mat-error[text()='Please enter a valid From date']

答案 1 :(得分:0)

只要在刷新页面后innerHTML保持一致,您就可以使用Xpath来查找元素。例如以下Xpath可以找到 To date webElement。

//mat-error[contains(.,'valid To date')]

答案 2 :(得分:0)

使用以下Xpath动态更改ID。

//mat-error[starts-with(@id,'mat-error')]

答案 3 :(得分:0)

根据您共享的 HTML ,因为id不断更改,因此您必须构建动态 xpath 以识别这两个元素,如下所示: / p>

  • 文字为的元素请输入有效的日期

    //mat-error[@class='mat-error' and starts-with(@id,'mat-error') and contains(.,'To')]
    
  • 文字为的元素请输入有效的发件日期

    //mat-error[@class='mat-error' and starts-with(@id,'mat-error') and contains(.,'From')]