如何处理硒中的Chrome中的身份验证弹出窗口

时间:2019-11-26 06:19:31

标签: java selenium authentication

我正在尝试启用https和SSO的网站。 我已经在URL本身中传递了用户ID和密码,但是在chrome浏览器中不起作用。

我观察到url中存在某种令牌,该令牌已添加到url之间。该令牌对于您访问网址的eveytime是新的。

我认为将在这里工作的是..访问url->将在url中添加新令牌->身份验证弹出窗口将会出现->然后我将获取当前url(带有当前令牌)-> driver.get此获取的网址

我已经手动尝试过,并且可以正常工作。

在身份验证弹出窗口仍然打开的情况下,有人可以帮助我获取当前的url值,因为对我而言,该控件未移动到具有以下代码的下一行。

    public static void main(String[] args) throws InterruptedException, AWTException {

    WebDriver driver = new ChromeDriver();

    driver.manage().window().maximize();

    driver.get("url_without_token");

    // here authentication will come and url is updated with token

    String currentURL = driver.getCurrentUrl();
    System.out.println(currentURL);
    driver.get(currentURL);
} 

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

        wait.until((ExpectedCondition<Boolean>) driver ->
                webDriver.getCurrentUrl().contains("token")
        );

其中“令牌”是您来自网址的令牌参数的名称。

答案 1 :(得分:-1)

使用诸如睡眠或隐式等待之类的等待方式:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

检查以下答案:Getting the URL of the current page using Selenium WebDriver