【问题标题】:Selenium Basic Authentication via URL HeadlessChrome ( On Linux Server)通过 URL HeadlessChrome 进行 Selenium 基本身份验证(在 Linux 服务器上)
【发布时间】:2019-02-05 03:55:02
【问题描述】:

在我的 Selenium 测试中,我需要测试一个使用基本 Authen 的网页, 知道我正在使用 Chrome Headless Java 和 Selenium WebDriver。 在我的机器上“本地”使用driver.get("https://admin:admin@localhost.."); 完美运行 然后 driver.get("https://localhost..") 例如。 我知道 Chrome 不再支持此功能,但我设法通过传递第一个带有凭据的 URL 和第二个没有凭据的解决方案来使其工作。 但是当我在远程(Jenkins)上运行它时,在 Linux 服务器上出现以下错误

您的浏览器配置不接受cookies

。当我可以配置 Chrome 时,我对服务器没有远见......任何想法如何让它在不遇到这个问题的情况下工作。

我知道很多人以前问过这个问题,但我没有找到任何有效的答案。

【问题讨论】:

  • 我也面临同样的问题。还是有问题
  • @SolomonRaja 那么您要启用 cookie 还是寻找其他身份验证方式?我认为后者是可能的,但我不太确定..

标签: java selenium google-chrome cucumber headless-browser


【解决方案1】:

尝试 ChromeDriver 2.45 (changelog) 或更改应该保存 cookie 的位置:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

否则(默认情况下)它会在每次启动会话时创建一个新的临时目录。

【讨论】:

    【解决方案2】:

    ChromeOptions options = new ChromeOptions();

    //启用帐户一致性的命令行标志。默认模式是禁用的。

    options.addArguments("--account-consistency");

    //Chrome 将从启动时开始记录到文件

    options.addArguments("--log-net-log=C:/some_path/resource/log.json");

    //设置要在网络日志中捕获的事件的粒度。

    options.addArguments("--net-log-capture-mode=IncludeCookiesAndCredentials");

    试试这个,基本上,它保存了chrome浏览器启动的日志,然后它会设置帐户一致性。您可以从日志中的任何位置调试问题。

    【讨论】:

      【解决方案3】:

      您好,我设法解决了这个问题(我忘了提到我们的网站受 Siteminder 保护)所以我做了以下操作:

      1-我们在 URL 上注入 USER 和 PASSWORD :

      我们面临的问题是显示的提示不是页面 HTML 的一部分,我们很难使用 Selenium 捕捉它。我们通过直接在 URL 中注入用户登录名和用户密码来管理这一点,如下所示: ‘https://USERNAME:PASSWORD@basicAuthentURL’ 这将启动 Chrome 会话。请注意,这只是该过程的第一步。尚未执行用户识别。

      2- 我们创建一个新的 cookie:

      启动 URL 后,我们必须手动创建一个名为 «SMCHALLENGE» 的 cookie,并将其添加到与 Selenium 的当前会话中,例如在 JAVA 中: 新 Cookie("SMCHALLENGE", "YES");

      3- 在没有用户凭据的情况下调用 URL:

      由于现在设置了 SMCHALLENGE cookie,最后一步是再次调用 URL (https://basicAuthentURL)。验证成功后,SMCHALLENGE cookie 将被删除,Siteminder 将生成 SMSESSION cookie。 SMSESSION cookie 现在允许我们调用应用程序并成功通过 Siteminder,就像正常登录(通过 SSO)一样。

      如果你试试这个,请告诉我。

      【讨论】:

        猜你喜欢
        • 2018-01-02
        • 2017-09-18
        • 2016-06-17
        • 1970-01-01
        • 2017-10-01
        • 1970-01-01
        相关资源
        最近更新 更多