如何使用Selenium在Safari中弹出身份验证?

时间:2017-11-27 17:05:23

标签: selenium-webdriver safari

我使用WebDriver遇到了Safari 11的问题。我能够通过使用以下方法绕过该身份验证弹出窗口:

String URL = "http://" + username + ":" + password + "@" + Settings.AUT;
Driver.Navigate().GoToUrl(URL + "/");

这在某种程度上适用于Safari 10,虽然我将Safari升级到11,因为最大化窗口不适用于Safari 10。 我目前正在使用webdriver 2.48进行safari。 我不知道如何处理Safari测试。这是一个已知的问题?我知道有AutoIT,但还有其他方法吗?

3 个答案:

答案 0 :(得分:0)

您当前的网络驱动程序可能无法与该版本的浏览器一起使用。

  

SafariDriver - DEPRECATED - 将Apple的SafariDriver与Safari 10 +一起使用

     

SafariDriver现在需要先手动安装扩展程序   自动化

自:

http://www.seleniumhq.org/download/

答案 1 :(得分:0)

根据RFC 3986,在URL中传递用户名和密码的这种格式已被弃用,尽管它在Chrome和FF中仍然有效,但Safari不再支持此格式。

答案 2 :(得分:0)

您可以使用AppleScript和Java处理浏览器弹出窗口。这是执行AppleScript的Java代码,只需调用此函数并以String形式传递AppleScript:

public static void execute(String appleScript)
{
    Process process = null;

    try
    {
        String[] args = { "osascript", "-e", appleScript };

        process = Runtime.getRuntime().exec(args);
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));

        String logs = null;

        while ((logs = bufferedReader.readLine()) != null)
        {
            System.out.println(logs);
        }
    }
    catch (Exception e)
    {
    }
    finally
    {
        if (process != null)
            process.destroy();
    }
}

如果您不知道如何编写AppleScript,请转到他们的教程。