请参阅下面从开发人员工具复制的xpath表达式。
//*[@id="parentDiv"]/table/tbody/tr[1]/td[8]/div/profile-link-column/a/i
我想点击第一行中的第8个表格数据(实际上是一个小图标),所以10次中有3次可以正常工作。
有人可以提出更可靠的方法吗?
这是我的HTML:
<td>
<!--anchor-->
<div class="animated-slide-in au-enter-active">
<profile-link-column device-id="${value.value}" class="au-target" au-target-id="395">
<a click.trigger="viewProfile()" class="au-target" au-target-id="55">
<i class="fa fa-newspaper-o"></i>
</a>
</profile-link-column>
</div>
<!--anchor-->
<!--anchor-->
<!--anchor-->
<!--anchor-->
<!--anchor-->
</td>
答案 0 :(得分:0)
在这里使用css
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(By.cssSelector("i.fa.fa-newspaper-o")).click
检查它是否正常工作,如果它不起作用,那么请粘贴错误,如果它与可见性错误有关,那么我认为问题是,<profile-link-column device-id="${value.value}" class="au-target" au-target-id="395"> <a click.trigger="viewProfile()" class="au-target" au-target-id="55"> <i class="fa fa-newspaper-o"></i> </a> </profile-link-column>
隐藏在你的html中。
答案 1 :(得分:0)
要点击所需元素,您必须引导 WebDriverWait 以使元素可点击,如下所示:
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td/div[@class='animated-slide-in au-enter-active']/profile-link-column[@class='au-target']/a[@class='au-target']/i[@class='fa fa-newspaper-o']"))).Click();