通过第一个 URL,我单击“登录”(如图所示),这会导致我需要在其中输入凭据的另一个 URL。但在该页面之前,我看到浏览器生成了一个弹出窗口,Selenium 无法找到该弹出窗口。 。我的chrome浏览器版本是61.0.3163.100(官方版本)(64位)
我尝试使用以下方法:
Alert.dismiss()
JavaScript
((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return
真实; }");
自动它
WinWaitActive("Windows Security")
Send("admin{TAB}")
Send("Password{Enter}")
机器人班
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 设置中或通过脚本删除此弹出窗口?
提前致谢
以下代码对我有用
Robot robot;
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException e) {
e.printStackTrace();
}
您可以使用策略禁用基本身份验证。创建一个名为
/etc/opt/chrome/policies/managed/noauth.json
的文件,其中包含以下内容:
{
"AuthSchemes": "negotiate"
}
注意:如果您使用 chromium,目录将为
chromium
或 chromium-browser
而不是 chrome
。