【问题标题】:Press ENTER key in Selenium WebDriver with java when element property not present当元素属性不存在时,使用 Java 在 Selenium WebDriver 中按 ENTER 键
【发布时间】:2015-10-28 09:43:56
【问题描述】:

我正在使用带有 Java 的 selenium webdriver 来自动化网页

当我输入 url 时,我得到了需要身份验证的对话框

我可以通过配置配置文件输入用户名和密码 但我无法点击确定按钮

注意:无法获取 ok 按钮属性,因此无法获取 使用下面的代码

import org.openqa.selenium.Keys
WebElement.sendKeys(Keys.RETURN);

还有其他方法可以通过 webdriver 按下 ok 按钮吗?

【问题讨论】:

  • 你能贴出这个按钮的HTML代码吗?
  • 在调用 url 后得到包含 ok 按钮的对话框
  • 我无法查看页面 scorce 以获取 html 代码
  • 是javascript弹出框吗?
  • 是的,它是 java 脚本

标签: java selenium-webdriver


【解决方案1】:

您需要将其作为警报框处理, 等待弹出窗口出现,然后单击确定。

下面的代码最多等待 10 秒以使弹出窗口出现,然后单击“确定”接受它。虽然等待是可选的。

new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());
driver.switchTo().alert().accept();

【讨论】:

    【解决方案2】:

    无法直接使用 Selenium 处理凭证框 您可以使用 JAVA AWT 机器人类按 Enter。此类在 java API 本身中可用。

    Robot r = new Robot();
    r.keyPress(KeyEvent.VK_ENTER);
    r.keyRelease(KeyEvent.VK_ENTER);
    

    或者,您可以使用 AutoIt 或基于图像的测试工具,例如 SIKULI http://www.sikuli.org

    请注意,当您使用这些解决方案时,运行测试用例时工作站屏幕无法锁定。

    【讨论】:

      【解决方案3】:

      试试这个代码 sn-p:

      driver.findElement(By.xpath("//body")).sendKeys(Keys.RETURN);
      

      一定会成功的。

      【讨论】:

      • 您能解释一下为什么您的代码对 OP 有帮助吗?
      • 这不是 SO 见过的最佳答案,但这正是我需要弄清楚我面临的问题。
      猜你喜欢
      • 2015-06-28
      • 2018-09-01
      • 2012-04-19
      • 1970-01-01
      • 2016-12-25
      • 2014-01-05
      • 2016-05-07
      • 2015-05-29
      • 1970-01-01
      相关资源
      最近更新 更多