【问题标题】:WebdriverIO automation testing when JavaScript is disabled禁用 JavaScript 时的 WebdriverIO 自动化测试
【发布时间】:2017-06-06 16:04:28
【问题描述】:

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

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

【问题讨论】:

标签: javascript selenium-webdriver webdriver-io browser-automation wdio-v4


【解决方案1】:

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

这在过去使用chromium switches 很容易实现。但是考虑到所有驱动程序实现(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 并在模式中选中不允许任何网站运行 JavaScript。点击完成。现在转到一个随机页面,发现 JavaScript 已被阻止:

  3. 现在我们必须保存此自定义配置文件,并在您每次启动 WebdriverIO 测试用例时加载它。在地址栏中输入 chrome://version。注意 配置文件路径 值。复制文件夹的内容(例如:对于 C:\Users\<yourUserName>\Desktop\scoped_dir18256_17319\Default,复制桌面上的 scoped_dir18256_17319 文件夹)。此文件夹包含 THIS 当前实例上的所有操作(搜索历史记录、安装的扩展程序、保存的帐户......在我们的例子中,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 将在所有网站上被阻止。希望这是您正在寻找的行为,因为没有其他方法可以实现此行为。

干杯!

【讨论】:

  • 感谢@iamdanchiv 的帮助。这对我来说真的很有效。我尝试了所有其他方法,但从未成功。你说的方法很完美。
猜你喜欢
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 2021-01-01
  • 2018-07-16
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
相关资源
最近更新 更多