我正在使用带有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')]
但是找不到任何东西,欢迎任何帮助!
答案 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"]