【发布时间】:2017-09-10 15:28:45
【问题描述】:
我想点击类 id 为 clsArrowClick 的锚标签,而另一个锚标签上有相同的 id。
<td class="text-center" style="width: 25% !important;">
<td class="arrow" data-toggle="tooltip" data-container="body" title=""
style="width: 25% !important; text-align:center" data-original-
title="Select/Show Data">
**<a id="clsArrowClick" class="clsarrowClick" href="#"
onclick="javascript:OpenAddNewWellPopup(this);">
<i class="fa fa-arrow-right"/>
</a>**
<input id="hdnIsSaved0" class="hdnIsArrowSaved" value="0" type="hidden"/>
</td>
</tr>
<tr id="2">
<td style="width:50%; class=" '="" data-container="body" data-
toggle="tooltip" title="" data-original-title="abcd">abcd</td>
<td class="text-center" style="width: 25% !important;">
<td class="arrow" data-toggle="tooltip" data-container="body" title=""
style="width: 25% !important; text-align:center" data-original-
title="Select/Show Data">
**<a id="clsArrowClick" class="clsarrowClick" href="#"
onclick="javascript:OpenAddNewPopup(this);">
<i class="fa fa-arrow-right"/>
</a>**
<input id="hdnIsSaved1" class="hdnIsArrowSaved" value="0" type="hidden"/>
</td>
我尝试了列表、等待方法和简单方法,但我的程序抛出错误 线程“主”org.openqa.selenium.ElementNotVisibleException 中的异常
喜欢
//WebDriverWait wait = new WebDriverWait(driver,30); //wait.until(ExpectedConditions.presenceOfElementLocated(By.className("clsArrowClick"))); //driver.findElement(By.className("clsarrowClick")); driver.findElement(By.xpath("(.//*[@id='clsArrowClick'])[1]")).click();
【问题讨论】:
-
1.我观察到有 2 个链接 id="clsArrowClick" & class="clsarrowClick"。其中一个调用 JavaScript "OpenAddNewWellPopup(this)" 而另一个调用 JavaScript "OpenAddNewPopup(this)" 那么你想点击哪一个? 2. 可以多粘贴一点HTML DOM吗? 3. 请保持您的 HTML DOM 格式,以便我们更容易理解。
-
我想点击第一个,这就是我能提供的所有 HTML
-
当你使用 findElement 时,你将返回第一个元素,不需要在 xpath 中使用索引。您应该使用 visibilityofelementlocated() 预期条件。
-
与问题没有直接关系,但要求开发人员FIX THE HTML。
ids 应该是唯一的。
标签: selenium selenium-webdriver