首页 > 解决方案 > 硒警报认证

问题描述

我正在尝试访问位于我的本地主机上的网站。当我导航到它时,会出现一个警报,我必须进行身份验证,但是当我使用“authenticateUsing”方法时,它告诉我它不存在。谁能帮我?

        System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.navigate().to("http://localhost:8015/thing/Home");
        String username = "a";
        String password = "bbbbb";
        WebDriverWait wait = new WebDriverWait(driver, 10);      
        Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
        alert.authenticateUsing(new UserAndPassword(username, password));

错误看起来像: 在此处输入图像描述

我想填写这样的警报: 在此处输入图像描述

标签: javaseleniumselenium-webdriverselenium-chromedriver

解决方案


这个问题虽然没有提供足够的信息。我会给你一些方法:

方法1:

您必须先切换到警报框,然后才能进行交互。

Alert alert = driver.switchTo().alert();  

然后您可以继续执行。切换到警报后是这样的:

wait.until(ExpectedConditions.alertIsPresent());  
alert.authenticateUsing(new UserAndPassword(username, password)); 

方法2:

String username = "a";
String password = "bbbbb";
String URL = "http://" + username  + ":" + password + "@" + localhost:8015/thing/Home;
driver.get(URL);
Alert alert = driver.switchTo().alert();
alert.accept();  

方法 3: 您可以尝试 AutoIT 脚本。请注意 AutoIT 脚本只能在 windows 环境下工作。但是,我不建议您采用这种方法。


推荐阅读