请不要就我发布类似问题的原因发表评论。我尝试了很多东西,没有任何工作。下面是HTML
<div id="businessSettingsColumn1">
<div class="sectionLink">
<a href="serviceprovider/30015514/settings/details">Business details</a>
</div>
<div class="sectionLink">
<a href="serviceprovider/30015514/settings/hours">Operating hours</a>
</div>
<div class="sectionLink">
<a href="settingsserviceproviderleave.action?purpose=closed">Closed dates</a>
</div>
<div class="sectionLink">
<a href="serviceprovider/30015514/settings/booking/notifications">Appointment notifications</a>
</div>
我需要点击第二个链接 我试过了
1)webdriver.findElement(By.partialLinkText("Operating hours")).click();
2)webDriver.get(mylement.findElement(By.tagName("a")).getAttribute("href"));
3)
List<WebElement> businessLinks= busCol.findElements(By.className("sectionLink"));
for(WebElement bLink :businessLinks) {
if(bLink.getText().contains("Operating hours")) {
bLink.findElement(By.tagName("a")).click();
}
}
4)使用“动作”构建器移动鼠标,然后单击
此外,当我连续3次这样做时,我的元素被点击了
webdriver.findElement(By.partialLinkText("Operating hours")).click();
webdriver.findElement(By.partialLinkText("Operating hours")).click();
webdriver.findElement(By.partialLinkText("Operating hours")).click();
我使用的是Firefox 25.0版和Selenium 2.35.0版。有趣的是,当我做一个sysout时,值被打印,当我尝试使用webdriver获取url时,我得到“在缓存中找不到元素 - 也许页面已经改变,因为它被查找了”..它几乎一个只有链接的静态页面,所以我不明白为什么我无法点击它..任何帮助将不胜感激。
答案 0 :(得分:2)
您可以尝试在单击之前调用该元素上的focus()吗?
答案 1 :(得分:1)
这通常是因为元素在某个时刻存在,但随后发生了一些事情,然后由于某种原因它不再存在。例如,当页面进行AJAX调用时,我会经常遇到这种情况。
您是否尝试过添加一些等待以确保元素已准备就绪?