如何在运行 Selenium 脚本时禁用 chrome 浏览器中的身份验证弹出窗口

Posted

技术标签:

【中文标题】如何在运行 Selenium 脚本时禁用 chrome 浏览器中的身份验证弹出窗口【英文标题】:How to disable the authentication popup in chrome browser while running Selenium Script 【发布时间】:2018-03-23 23:29:20 【问题描述】:

enter image description here通过第一个 URL,我点击登录(如图所示),这会导致我需要输入凭据的另一个 URL。但在该页面之前,我看到浏览器生成的弹出窗口无法被 Selenium 定位。 enter image description here。我的 chrome 浏览器版本是 61.0.3163.100 (Official Build) (64-bit)

我尝试使用以下方法:

    Alert.dismiss()

    javascript

    ((JavascriptExecutor) driver).executeScript("window.confirm = function(msg)  return
    

    真; ");

    AutoIt

    WinWaitActive("Windows Security")
    Send("adminTAB")
    Send("PasswordEnter")
    

    机器人类

    alert.sendKeys("UserName");
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_TAB);
    alert.sendKeys("Password");
    alert.accept();
    

    还尝试通过在 URL 中输入用户名和密码来浏览第二个 URL

此外,我的 selenium 脚本中还使用了一些 Chrome 选项

ChromeOptions options = new ChromeOptions(); 
options.addArguments("--disable-popup-blocking");
options.addArguments("chrome.switches","--disable-extensions");
driver = new ChromeDriver(options); 


ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("disable-popup-blocking");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities); 


WebDriverWait wait = new WebDriverWait(driver, 10);      
Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
alert.authenticateUsing(new UserAndPassword(username, password)); 

还有其他方法可以在 chrome 设置中或通过脚本删除此弹出窗口吗?

提前致谢

【问题讨论】:

您收到什么错误信息?你正在研究哪种语言? AutoIt 应该已经解决了您的问题。 WinWaitActive("Windows 安全") Send("admin") Send("TAB") Send("Password") Send("ENTER") Selenium - Other way to basic authenticate than via url的可能重复 @ShoaibAkhtar :我没有收到任何错误。我在 JAVA 工作。我的所有脚本都在 Firefox 中传递(Chrome 支持的某些功能除外) 我的实际问题出现在我的第二个屏幕上 我在 chrome 浏览器中收到一个身份验证弹出窗口,我需要手动取消以继续脚本的其他部分 @DebanjanB :我也尝试了该配置。它没有达到目的 【参考方案1】:

以下代码为我工作

    Robot robot;
    try 
        robot = new Robot();
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
     catch (AWTException e) 
        e.printStackTrace();
    

【讨论】:

以上是关于如何在运行 Selenium 脚本时禁用 chrome 浏览器中的身份验证弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

selenium webdriver如何启用Firefox插件?

如何使用 Selenium for Firefox 和 Chrome 禁用推送通知?

如何修复“在此系统上禁用运行脚本”?

“Firefox 意外退出。”在 Python 中运行基本 Selenium 脚本时

在 openSUSE 上启动时运行脚本

是否可能:Web App 中的 Selenium 在运行时传递脚本