【问题标题】:Issues with Opening webpage using Selenium [duplicate]使用 Selenium 打开网页的问题 [重复]
【发布时间】:2019-07-18 09:05:53
【问题描述】:

我们正在使用 Selenium 打开某些网页,但是在打开网页时出现了一个弹出窗口,我们无法使用 selenium 代码处理该弹出窗口。下面是相同的示例代码。我正在尝试使用警报方法,但系统无法检测到警报

System.setProperty("webdriver.chrome.driver","D:\\Test\\drivers\\chromedriver.exe");
        WebDriver driver =  new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://the-internet.herokuapp.com/basic_auth");
        Alert alert=driver.switchTo().alert();
        System.out.println(alert.getText());
        alert.dismiss();

我在上面的代码上放了一个调试点。并且代码卡在第 4 行 driver.get() 处。除非在加载的页面上执行了某些操作,例如手动单击取消按钮,否则控件不会移动到下一行。

需要帮助

  • 使用 selenium,加载网页时如何处理弹出窗口?我无法通过 selenium 检测到 Popup 元素
  • 我猜这是页面加载时出现的 javascript 弹出窗口。如何通过 selenium 处理页面加载时的 javascript 弹出窗口?

非常感谢您对此的任何帮助。提前致谢。

【问题讨论】:

  • 您是否尝试在页面加载后等待 200 毫秒
  • 当你说它卡在第 4 行时,你的意思是这就是测试失败的地方吗?
  • 是的。实际上,您可以尝试通过 chrome 浏览器访问此网址“the-internet.herokuapp.com/basic_auth”,这样您就可以解决我面临的问题。当您尝试访问该 url 时,会弹出一个窗口。我不知道如何通过硒处理它。因为我无法通过 selenium 检测到弹出元素
  • 哦,那么您不需要关闭它,您只需使用 url 中的凭据导航到 url。看答案

标签: javascript java selenium selenium-chromedriver


【解决方案1】:

如果您需要在能够查看页面之前使用基本身份验证进行身份验证,您可以使用 url 中的凭据导航到 url,这样:

https://admin:admin@the-internet.herokuapp.com/basic_auth

语法:

<protocol>://<username>:<password>@<url>

刚刚在您正在测试的那个网站上进行了尝试,并且在身份验证正常后能够访问该页面

【讨论】:

  • 我们也试过这个选项。但这不适用于我们尝试访问的 url。我指定早期的示例链接有效,但不适用于我们尝试访问的 Intranet 站点。
  • 我自己尝试过,看到了预期的页面。使用代码driver.get("https://admin:admin@the-internet.herokuapp.com/basic_auth")
  • 如上所述,我指定的示例 url 有效,但我们尝试设置的其他页面无效。我们想知道如何在页面加载时通过 selenium 处理弹出窗口。
  • 好吧,对不起,抱歉,第一条评论没反应
猜你喜欢
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多