运行 PhantomJSDriver 时 Session.negotiatedCapability 会忽略 Session.desiredCapability

发布于 2025-01-15 05:37:46 字数 1943 浏览 4 评论 0原文

我有一个要求,需要在没有任何 GUI 的情况下运行在 Amazon linux2 实例中验证我的网页的测试场景。因此我选择 PhantomJS/GhostDriver 来执行这些执行。 我还需要在驱动程序中添加有效证书以运行测试。

设置所需功能并启动 PhantomJS 驱动程序时的部分代码。

capabilities = new DesiredCapabilities();
        capabilities.setJavascriptEnabled(true);
        capabilities.setAcceptInsecureCerts(true);
        capabilities.setCapability("takesScreenshot", true);
        capabilities.setCapability("browserName", "phantomjs");
        try {
            final String webSecurity = "--web-security=false";
            final String sslProtocol = "--ssl-protocol=any";
            final String ignoreSSLErrors = "--ignore-ssl-errors=true";
            final String webDriverLogLevel = "--webdriver-loglevel=DEBUG";
            final String clientCertFile = "--ssl-client-certificate-file=" + clientCertificateAbsolutePath;
            final String clientKeyFile = "--ssl-client-key-file=" + clientSecretKeyAbsolutePath;
            final String clientKeyPassphrase = "--ssl-client-key-passphrase=" + passPhrase;
            String[] params = new String[]{webSecurity, sslProtocol, ignoreSSLErrors, webDriverLogLevel, clientCertFile, clientKeyFile, clientKeyPassphrase};
            String phantomJSPath = System.getProperty("user.dir");
            logger.info("Path for PhantomJS file:" + phantomJSPath);              capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,  "/usr/bin/phantomjs");
            capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,params);
            WebDriver driver = new PhantomJSDriver(capabilities);

在执行测试时,我注意到 desiredCapability 被忽略并被 negotiatedCapability< 替换/strong> 因此,当呈现无头浏览器时,证书详细信息将失效。 输入图片这里的描述

任何人都可以建议如何解决这个问题,或者有任何更好的方式或方法来运行我的测试。

I have a requirement where I need to run test scenarios of validating my webpage in Amazon linux2 instance without any GUI. Hence I selected PhantomJS/GhostDriver to perform these executions.
I also need to add valid certificate in my driver for running tests.

Part of the code when setting Desired capabilities and initiating my PhantomJS driver.

capabilities = new DesiredCapabilities();
        capabilities.setJavascriptEnabled(true);
        capabilities.setAcceptInsecureCerts(true);
        capabilities.setCapability("takesScreenshot", true);
        capabilities.setCapability("browserName", "phantomjs");
        try {
            final String webSecurity = "--web-security=false";
            final String sslProtocol = "--ssl-protocol=any";
            final String ignoreSSLErrors = "--ignore-ssl-errors=true";
            final String webDriverLogLevel = "--webdriver-loglevel=DEBUG";
            final String clientCertFile = "--ssl-client-certificate-file=" + clientCertificateAbsolutePath;
            final String clientKeyFile = "--ssl-client-key-file=" + clientSecretKeyAbsolutePath;
            final String clientKeyPassphrase = "--ssl-client-key-passphrase=" + passPhrase;
            String[] params = new String[]{webSecurity, sslProtocol, ignoreSSLErrors, webDriverLogLevel, clientCertFile, clientKeyFile, clientKeyPassphrase};
            String phantomJSPath = System.getProperty("user.dir");
            logger.info("Path for PhantomJS file:" + phantomJSPath);              capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,  "/usr/bin/phantomjs");
            capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,params);
            WebDriver driver = new PhantomJSDriver(capabilities);

When test is being executed, I am noticing that desiredCapabilities are being ignored and replaced by negotiatedCapabilities and hence the Cert details are being invalidated when headless browser is rendered.
enter image description here

Can anyone please suggest how it can be resolved or any better way or approach for running my tests.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文