【问题标题】:Automate SSO authentication in Chrome在 Chrome 中自动进行 SSO 身份验证
【发布时间】:2015-12-09 13:58:40
【问题描述】:

我正在用 Java 编写 Selenium 脚本。我有一个网站说originalwebsite.com,当输入这个并点击时,它将转到authenticationwebsite.com,验证凭据并自动重定向到originalwebsite.com

很抱歉,我无法透露 origianlwebsiteauthenticationwebsite 网址,因为这些是我们组织的网址。

当我直接在任何 Chrome 浏览器中输入它时,这是自动完成的,因为存储了 authenticationwebsite 凭据。

但是当我通过 Selenium 执行此操作时,该过程没有重定向到 originalwebsite.com,而是在 authenticationwebsite.com 处停止并要求提供凭据。通过SO 的一些论坛,我尝试了以下代码。

在 Chrome 中

System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
        String user = System.getProperty("user.name");
        // System.out.println(user);
        ChromeOptions options = new ChromeOptions();
        options.addArguments(
                "user-data-dir=C:/Users/" + user.toUpperCase() + "/AppData/Local/Google/Chrome/User Data/Default");
        options.addArguments("--start-maximized");
        WebDriver cd = new ChromeDriver(options);
        cd.get("https://originalwebsite.com");

当我运行它时,我得到以下异常。

Starting ChromeDriver 2.19.346078 (6f1f0cde889532d48ce8242342d0b84f94b114a1) on port 9702
Only local connections are allowed.
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed
  (Driver info: chromedriver=2.19.346078 (6f1f0cde889532d48ce8242342d0b84f94b114a1),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 61.39 seconds
Build info: version: '2.48.1', revision: 'd80083d', time: '2015-10-08 21:07:25'
System info: host: 'U0138039-TPD-A', ip: '10.112.78.15', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_67'
Driver info: org.openqa.selenium.chrome.ChromeDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:647)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:247)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:129)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:159)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:148)
    at EaselTest.main(EaselTest.java:21)

但在 Firefox 中,这可以正常工作。我使用的代码如下。

ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("default");
WebDriver cd = new FirefoxDriver(ffprofile);
cd.get("https://originalwebsite.com");

请告诉我如何在 Chrome 中执行此操作,因为这里的大多数用户都使用 chrome 作为他们的默认浏览器。

谢谢

【问题讨论】:

    标签: google-chrome selenium


    【解决方案1】:

    似乎 selenium 无法选择安装它的 chrome 浏览器。

    检查这个答案:ChromeWebDriver - unknown error: Chrome failed to start: crashed

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2011-12-23
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多