【问题标题】:Webdriver's click() method not working on a websiteWebdriver 的 click() 方法在网站上不起作用
【发布时间】:2012-03-09 11:08:52
【问题描述】:

我正在使用 WebDriver API 测试网页,而 click() 方法不适用于特定网页。

它既没有显示任何异常,也没有单击 web 元素(在我的例子中是一个链接)。我尝试使用 xpath、id 和链接查找元素,但点击无效。

但是,当我在同一链接上尝试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();

但徒劳无功。

【问题讨论】:

    标签: webdriver


    【解决方案1】:

    尝试以下选项:

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

    或 - 尝试发送如下 ENTER 键:

    linkkk.sendKeys(Keys.ENTER);
    

    或 - 首先移动到该链接,然后单击或发送 ENTER 键

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

    【讨论】:

    • 我仍在寻找答案。我们不能为 Safari 使用 Action 类。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多