2

请不要对我为什么发布类似问题发表评论。我尝试了很多东西,但没有任何效果。下面是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 时,我会得到“在缓存中找不到元素 - 也许页面在被查找后发生了变化”.. 它几乎一个只有链接的静态页面,所以我不明白为什么我不能点击它。任何帮助将不胜感激。

4

2 回答 2

2

您可以在单击之前尝试在元素上调用 focus() 吗?

于 2013-11-27T09:35:18.337 回答
1

这通常是因为元素在某个时候存在,但后来发生了一些事情,然后由于某种原因它不再存在。例如,当页面进行 AJAX 调用时,我经常遇到这种情况。

您是否尝试过添加一些等待以使 selenium 确定元素已准备好?

于 2013-11-15T04:13:18.877 回答