Webdriver的click()方法无法在网站上运行

时间:2012-03-09 11:08:52

标签: webdriver

我正在使用WebDriver API来测试网页,click()方法无法在特定网页上运行。

它既没有显示任何异常也没有点击webelement(在我的情况下是一个链接)。我试图使用xpath,id和link找到元素,但点击不起作用。

但是,当我在同一个链接上尝试contextClick(即右键单击)操作时,它可以正常工作。此外,当我打印文本或web元素的tagName时,文本或tagName在输出屏幕上完全显示。

我的代码:

WebDriver browser=new InternetExplorerDriver();
browser.get("some website");
WebElement linkkk=browser.findElement(By.xpath("//*[@id='topsort']/li[2]/a"));
linkkk.click();

网页代码:

<div class="content">
  <div class="blind" style="display: none;"></div>
    <ul id="topsort">
      <li>something</li>
      <li><a class="category_nav_remote_link selected" href="some website">some text</a></li>
    </ul>
  </div>
</div>

我甚至用过:

Actions action=new Actions(browser);<br/>
action.click(linkkk);
action.perform();

但徒劳无功。

2 个答案:

答案 0 :(得分:7)

尝试以下选项:

WebElement linkkk=browser.findElement(By.xpath("//*[@id='topsort']/li[2]/a"));
linkkk.click();
//click once again
linkkk.click();

或 - 尝试按以下方式发送ENTER键:

linkkk.sendKeys(Keys.ENTER);

或 - 首先转到该链接&amp;然后单击或发送ENTER键

Actions moveTo = new Actions(driver);
moveTo.moveToElement(linkkk).click().perform();

答案 1 :(得分:1)

尝试使用IJavaScriptExecutor单击按钮。它在我的应用程序上非常成功。

((IJavaScriptExecutor)_webDriver).ExecuteScript("$(arguments[0].click()",webElement);