【发布时间】:2018-10-23 02:10:52
【问题描述】:
我遇到了 XPath 的问题。
我可以使用这个 xpath://*[@id='name']//*[@class='class']//div[1] -> 可以正常运行。
但我想使用 div[2] ex: //*[@id='name']//*[@class='class']//div[2] ,它会给出 元素不可见的错误。
谁能帮帮我,我不知道为什么 div[1] 可以运行但 div[2] 不可见。
我的 HTML 代码在这里:
<div class="class">
<div class="action-item" data-id="24" data-actioncode="STT">
<a href="#"><i class="fa fa-play"></i></a>
S T T
</div>
<div class="action-item" data-id="29" data-actioncode="FULL">
<a href="#"><i class="fa fa-play"></i></a>
FULL
</div>
<div class="action-item" data-id="30" data-actioncode="TEACHER">
<a href="#"><i class="fa fa-play"></i></a>
TEACHER
</div>
</div>
我试过的代码:
WebElement btnElement = driver.findElement(By.xpath("//[@id='name']//[@class='class']//div[2]"));
WebDriverWait wait= new WebDriverWait(driver,10 );
wait.until(ExpectedConditions.visibilityOf(btnElement));
btnElement.click();
【问题讨论】:
-
可以获得 STT xpath 但 FULL xpath 无法运行。我使用的代码:WebElement btnElement=driver.findElement(By.xpath("//[@id="name"]//[@class='class']//div[2]")); WebDriverWait 等待=新的 WebDriverWait(驱动程序,10); wait.until(ExpectedConditions.visibilityOf(btnElement)); btnElement.click();
-
我猜 xpath
//[@id='name']//[@class='class']//div[2]可以匹配页面上的多个元素,但匹配列表中的第一个不可见,它不是您想要的。您可以手动尝试 xpath 来确认我的猜测。 -
xpath 有问题,您的 xpath 匹配一个或多个元素,请仔细检查重复的 xpath。
标签: java selenium selenium-webdriver xpath webdriver