【问题标题】:Unable to handle alerts in selenium webdriver on firefox using java无法使用 java 在 firefox 上的 selenium webdriver 中处理警报
【发布时间】:2019-10-29 11:01:45
【问题描述】:

当我登录我的网站时,会弹出一个警报“您是否允许 MyWeb 向您发送通知”,但由于它没有 HTML,我无法找到它的定位器。

try {
        WebDriverWait wait=new WebDriverWait(driver,10);
        Alert alert=wait.until(ExpectedConditions.alertIsPresent());
        presentFlag=true;
        alert.accept();
    }
catch (Exception e) {
        e.printStackTrace();
    }

【问题讨论】:

  • 你确定这是一个JS警报吗?听起来不像是一个给定的描述。运行代码时会发生什么?错误是什么?您应该编辑您的问题并在此处发布完整的错误消息。

标签: java selenium-webdriver firefox alerts


【解决方案1】:

当你实例化你的 webdriver tyr 时:

FirefoxProfile ffProfile = new FirefoxProfile();
ffProfile.setPreference("permissions.default.desktop-notification", 1);
FirefoxOptions ffOpts = new FirefoxOptions();
ffOpts.setProfile(ffProfile);
WebDriver driver = new FirefoxDriver(ffOpts);

【讨论】:

  • Alexey,当我尝试使用您提到的解决方案时,我的浏览器卡住了,无法访问 URL,我在 setBrowserConfig() 方法中使用了此代码。
  • 你能显示你的setBrowserConfig()方法代码吗?
  • public static void setBrowserConfig() { System.setProperty("webdriver.gecko.driver","D:\\geckodriver.exe"); //try to handle pop up FirefoxProfile ffProfile = new FirefoxProfile(); ffProfile.setPreference("permissions.default.desktop-notification", 1); FirefoxOptions ffOpts = new FirefoxOptions(); ffOpts.setProfile(ffProfile); WebDriver driver = new FirefoxDriver(ffOpts); //driver=new FirefoxDriver(); }
  • 您应该使用driver = new FirefoxDriver(ffOpts); 而不是WebDriver driver = new FirefoxDriver(ffOpts); //driver=new FirefoxDriver();,否则您将更改仅在您的方法中本地可见的webdriver。
  • Alexey 我将 WebDriver 更改为驱动程序,并添加了以下首选项,现在它工作正常。 ` ffOpts.addPreference("media.navigator.permission.disabled", true);` 谢谢你的帮助。
【解决方案2】:

请尝试以下功能,

警报警报 = driver.switchTo().alert();

alert.accept();

【讨论】:

  • 您所建议的与萨曼已有的相同。 EC.alertIsPresent() 返回 Alert 存储在 alert 中,然后被接受。
  • 嗨,Jeffc,如果我错了,请纠正我..根据我上面的评论,驱动程序会将焦点移到弹出窗口,所以我不认为 saman 的建议和我的评论是一样的。
  • wait.until(EC.alertIsPresent()) 还在接受之前将上下文切换到警报,因此两者是等效的。我只是尝试确认。
  • 酷...谢谢@JeffC
猜你喜欢
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-21
  • 2012-07-25
  • 1970-01-01
相关资源
最近更新 更多