0

WebdriverIO 框架中有没有办法在禁用 JavaScript 的情况下启动浏览器?

我想自动化一个禁用 JavaScript 的场景。但是,当我在 Chrome 或 Firefox 中手动禁用 JavaScript 并运行 WDIO 脚本时,浏览器总是在启用 JavaScript 的情况下打开。

4

1 回答 1

1

不再。(但您有以下解决方法)

这在过去使用铬开关很容易实现。但考虑到所有驱动程序实现(chromedrivergeckodriver等)现在都需要 JavaScript来驱动生成的浏览器实例,这不再可能。

它是通过chromeOptions参数/开关实现的:

capabilities: [{

        maxInstances: 2,

        browserName: config[env].browser,
        chromeOptions: {

            args: ['--disable-javascript',
                   '--disable-javascript-harmony-shipping'
            ]
        }
    }]

!!!稍后编辑:您可以通过加载自定义配置文件来实现这一点。

  1. 启动您的 WebdriverIO 测试用例,但browser.debug()在加载页面后添加;
  2. 在地址栏中,键入chrome://settings/content并在模式中选中Do not allow any site to run JavaScript。单击完成。现在转到一个随机页面,并注意到 JavaScript 已被阻止:在此处输入图像描述

  3. 现在我们必须保存这个自定义配置文件并在每次启动 WebdriverIO 测试用例时加载它。在地址栏中输入chrome://version。注意配置文件路径值。复制文件夹的内容(例如:对于C:\Users\<yourUserName>\Desktop\scoped_dir18256_17319\Default,复制您桌面上的scoped_dir18256_17319文件夹)。此文件夹包含此当前实例 上的所有操作(搜索历史记录、安装的扩展程序、保存的帐户......在我们的例子中,JavaScript 禁用选项) 。

  4. 现在我们需要做的就是在文件中添加该文件夹的路径wdio.config.js作为chromeOptions参数:

    chromeOptions: {
        //extensions: ['./browserPlugins/Avira-SafeSearch-Plus_v1.5.1.crx'],
        args: [ '--user-data-dir=/Users/<yourUserName>/Desktop/scoped_dir18256_17319'
        ]
    }
    

现在您所要做的就是使用此自定义配置文件运行您的测试用例,JavaScript 将在所有网站上被阻止。希望这是您正在寻找的行为,因为没有其他方法可以实现此行为。

干杯!

于 2017-06-06T19:58:31.020 回答