【问题标题】:Workarounds for Selenium not clicking button with InternetExplorerDriverSelenium 的解决方法不使用 InternetExplorerDriver 单击按钮
【发布时间】:2012-01-16 11:05:39
【问题描述】:

我在网页上有一个按钮,当我通过 IE 运行时,Webdriver 不会点击该按钮 - 我尝试了以下解决方法,但没有成功 -

通过 Javascript 点击:

((JavascriptExecutor) driver).executeScript("$(arguments[0]).click()", webElement)

使用发送键:

webElement.SendKeys(keys.Enter)

使用动作生成器

Actions test = new Actions(driver);
        test.moveToElement(webElement);
        test.clickAndHold();
        test.release();
        test.build();
        test.perform();

确保窗口是活动窗口,然后单击父对象,然后单击对象本身

问题是,它们都不起作用。我检查了 Firefox 和 Chrome,脚本运行良好。我已经确认在使用 IE 时可以找到该元素。我可以尝试其他解决方法吗?

【问题讨论】:

  • 您有重现此问题的示例页面吗?如果它与其他驱动程序正常工作,则将其作为错误提交可能是值得的。
  • 不幸的是只能在内部应用程序上重现。已设法通过切换窗口焦点、强制滚动、单击父元素、单击元素然后发送 Javascript 来解决该问题。显然那里的某个地方有点矫枉过正,但很高兴它正在工作。
  • 我相信 IE 窗口需要位于最顶部并处于焦点位置,才能使许多操作正常工作。至少这是我的经验。
  • 您使用的 WebDriver 版本是什么?

标签: java selenium webdriver


【解决方案1】:

您似乎很想使用 JQuery 样式单击...正常的 javascript 样式单击应该可以工作。

试试这个:

((JavascriptExecutor) driver).executeScript("arguments[0].click();", webElement)

我总是发现在 IE 中单击一个元素可以成功。

  1. 如果是复选框/单选:webElement.click();
  2. 可点击的输入元素:webElement.sendKeys("\n");
  3. 对于其他元素,使用上面所说的JS样式点击。

【讨论】:

  • 如果可以,我会拥抱你!
  • @Conner - 谢谢,你让我开心:)
【解决方案2】:

如果按钮是表单提交按钮,您可以在表单的另一个字段上使用:webElement.submit()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2018-10-03
    相关资源
    最近更新 更多