微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用PHP Webdriver在Chrome中禁用Javascript(-headless)

我无头地使用Chrome.

我尝试设置–disable-javascript命令行参数.

我尝试使用实验选项:

        $options->setExperimentalOption('prefs', [
            'profile.managed_default_content_settings.javascript' => 2//this does not work
            //,'profile.default_content_setting_values.javascript' => 2//this does not work, too
        ]);

        $capabilities = DesiredCapabilities::chrome();
        $capabilities->setCapability(ChromeOptions::CAPABILITY, $options);

至于这一点,这两个不起作用.

如何使用Facebook PHP Webdriver在Chrome中禁用javascript?

以下是检查JavaScript是否已启用的测试:

        $this->driver->get('https://www.whatismybrowser.com/detect/is-javascript-enabled');
        return [
            $this->driver->getTitle(),
            $this->driver->findElement(WebDriverBy::cssSelector('.detected_result'))->getText()
        ];

解决方法:

可以通过设置以下其中一个首选项来禁用Javascript的执行:

"webkit.webprefs.javascript_enabled": false
"profile.content_settings.exceptions.javascript.*.setting": 2
"profile.default_content_setting_values.javascript": 2
"profile.managed_default_content_settings.javascript": 2

但是,由于此模式doesn’t load the preferences并且没有与此功能相关的command switch,因此目前无法无头支持.

请注意,禁用用于破坏Selenium的JavaScript,因为大多数命令都是在页面中注入的原子脚本.现在不再是这样了.所有命令都能够运行.但是我注意到返回的文本不包含来自< noscript>的文本. element(仅在禁用JavaScript时显示的文本).一种解决方法是使用execute_script或get_attribute读取innerText属性.

原文地址:https://codeday.me/bug/20190622/1263802.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐