selenium-webdriver - 如果第一个元素有多个相同的文本,则定位它
问题描述
我有 4 个与“HOD”同名的文本,我想点击第一个“HOD”。
我已经尝试了所有这些: 1.//a[contains(text(),'HOD') ][1] 2.//a[@class="link_job ng-binding"][1]
<ul type="none" class="job-search-results ng-scope" ng-if="flag && flag != undefined" id="ulId" ng-repeat="j in jobResult" xpath="1">
<!-- ngIf: j.statusId == 1 --><li ng-if="j.statusId == 1" class="job-small ng-scope"><a href="" class="big-a"></a><a href="" ng-click="fetchJobById(j.id);insertRecentSearch(j.position.id,'aaa')" class="link_job ng-binding">HOD</a>
<div class="ng-binding"><b>Department:</b> Computer_Science</div>
<div><b>Job Summary:</b> <p class="ng-binding">HOD should own masters degree in their onw field.
</p>
</div>
<img ng-src="resources/img/logo-placeholder.png" style="height:64px;" src="resources/img/logo-placeholder.png">
<!-- ngIf: j.status == 'Applied' -->
</li><!-- end ngIf: j.statusId == 1 -->
<!-- ngIf: j.statusId !=1 -->
</ul>
I expect that it should click on first HOD text.
解决方案
虽然设置延迟可以提供帮助,但它不是最好的方法。您可以等到您的加载不可见,然后尝试单击。这是一个快速的方法:
driver.wait(until.ElementIsNotVisible(driver.findElement(By.css('.loader'))));
driver.findElement(By.xpath('//a[contains(text(),'HOD') ][1]')).click();
推荐阅读
- django - 如何在 Django 中使用用户的 unique_id 和令牌发送 url?
- mobile - Appium - 在一个会话中自动化多个 Android 应用程序
- javascript - Angularjs rz-slider没有在键盘箭头键上返回值
- php - 使用php在数据库中插入具有自动增量ID的空白行导入excel文件
- node.js - 在 Microsoft BotFramework 的英雄卡中发送本地存储的图像
- java - 如何在窗口中最小化功能 JTextArea?
- java - Oracle JDBC 数据源将所有连接的自动提交属性设置为 false
- csv - NetSuite - CSV 导入
- java - 在泛型类中使用类的子类型
- python - 如何在 Django 模板的 li 标签中显示一行文本?