Selenium Webdriver-相对xpath,使用文本获取元素

时间:2018-10-19 11:29:29

标签: java selenium selenium-webdriver xpath automation

我正在使用带有Java的Selenium Webdriver。

我正尝试在下拉列表中查找元素,由于它们是动态元素,因此无法通过确切的id / name / xpath进行访问,因此我尝试通过相对xpath进行查找,但它可以正常工作,但请注意,它并不完全参见下图:

IMAGE ON IMGUR (CANT POST IMAGES YES)

如您在左上方所见,有一个下拉式覆盖层,其中包含3个选项:ALL / ACTIVE / INACTIVE,现在我设法通过使用相对xpath来定位所有三个选项,如图所示:

//*[@class="cdk-overlay-pane"]//*[@class="mat-option-text"]

但是现在如何获取一个具有特定文本的元素(在这种情况下为3个),例如“ Active”?我尝试了以下操作:

//*[@class="cdk-overlay-pane"]//*[@class="mat-option-text"]//*[contains(text(),'Active')]

但是找不到任何东西,欢迎任何帮助!

2 个答案:

答案 0 :(得分:0)

找到了解决方案,使用“包含”搜索文本

在我的情况下,这里是相对工作的xpath:

//*[@class="cdk-overlay-pane"]//*[contains(text(), 'All')]

它将返回位于下拉面板中的带有“所有”文本的元素。

答案 1 :(得分:0)

尝试

//*[@class="cdk-overlay-pane"]//span[@class="mat-option-text" and normalize-space(text())="All"]