WebdriverIO 框架中有没有办法在禁用 JavaScript 的情况下启动浏览器?
我想自动化一个禁用 JavaScript 的场景。但是,当我在 Chrome 或 Firefox 中手动禁用 JavaScript 并运行 WDIO 脚本时,浏览器总是在启用 JavaScript 的情况下打开。
WebdriverIO 框架中有没有办法在禁用 JavaScript 的情况下启动浏览器?
我想自动化一个禁用 JavaScript 的场景。但是,当我在 Chrome 或 Firefox 中手动禁用 JavaScript 并运行 WDIO 脚本时,浏览器总是在启用 JavaScript 的情况下打开。
不再。(但您有以下解决方法)
这在过去使用铬开关很容易实现。但考虑到所有驱动程序实现(chromedriver
、geckodriver
等)现在都需要 JavaScript来驱动生成的浏览器实例,这不再可能。
它是通过chromeOptions
参数/开关实现的:
capabilities: [{
maxInstances: 2,
browserName: config[env].browser,
chromeOptions: {
args: ['--disable-javascript',
'--disable-javascript-harmony-shipping'
]
}
}]
!!!稍后编辑:您可以通过加载自定义配置文件来实现这一点。
browser.debug()
在加载页面后添加;在地址栏中,键入chrome://settings/content并在模式中选中Do not allow any site to run JavaScript。单击完成。现在转到一个随机页面,并注意到 JavaScript 已被阻止:
现在我们必须保存这个自定义配置文件并在每次启动 WebdriverIO 测试用例时加载它。在地址栏中输入chrome://version。注意配置文件路径值。复制文件夹的内容(例如:对于C:\Users\<yourUserName>\Desktop\scoped_dir18256_17319\Default
,复制您桌面上的scoped_dir18256_17319文件夹)。此文件夹包含此当前实例 上的所有操作(搜索历史记录、安装的扩展程序、保存的帐户......在我们的例子中,JavaScript 禁用选项) 。
现在我们需要做的就是在文件中添加该文件夹的路径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 将在所有网站上被阻止。希望这是您正在寻找的行为,因为没有其他方法可以实现此行为。
干杯!