Node.js 在nightwatch.js中设置代理
我正在使用Node.js 在nightwatch.js中设置代理,node.js,selenium-webdriver,http-proxy,nightwatch.js,Node.js,Selenium Webdriver,Http Proxy,Nightwatch.js,我正在使用Node.js应用程序中的nightwatch.js编写集成测试。对于特定的测试用例,我希望nightwatch通过代理连接。这样做的正确方式是什么?我找不到任何东西从它的,或从它的 Selenium文档建议在webdriver实例上进行设置,如前所述。我不知道如何通过nightwatch实现这一点。在nightwatch.json配置文件中,您应该能够在desiredCapabilities中设置代理参数: 查看此文档:我在搜索socks5代理解决方案时遇到了这个问题。 当我使用so
Node.js
应用程序中的nightwatch.js
编写集成测试。对于特定的测试用例,我希望nightwatch通过代理连接。这样做的正确方式是什么?我找不到任何东西从它的,或从它的
Selenium
文档建议在webdriver实例上进行设置,如前所述。我不知道如何通过nightwatch实现这一点。在nightwatch.json配置文件中,您应该能够在desiredCapabilities中设置代理参数:
查看此文档:我在搜索socks5代理解决方案时遇到了这个问题。
当我使用socksProxy
属性使用文档中的实现时,总是出现以下错误:
message: 'unknown error: cannot parse capability: proxy from unknown error:
proxyType is \'manual\' but no manual proxy capabilities were found
使用通过proxy.pac文件配置的socks5代理-proxyType:“pac”
使用proxyAutoConfigure
可以正常工作。但这不适合我的用例
经过一番折腾,我终于找到了解决这个问题的两种方法:
对chromedriver使用CLI参数
所需功能:{
browserName:“chrome”,
/* … */
色度选项:{
args:[
“--proxy server=socks5://proxy\u url:proxy\u port”
]
}
}
*编辑:看起来此文件已被删除
2.使用sslProxy属性
由于socks代理在理论上只不过是一个ssl隧道,我想我可以再试试这个属性。使其最终工作的解决方案如下所示:
所需功能:{
browserName:“chrome”,
/* … */
代理:{
proxyType:“手动”,
sslProxy:'socks5://proxy\u url:proxy\u port'
}
}
希望该答案能帮助任何寻求有关袜子的帮助的人。:)
但更重要的是chromedriver将在将来正确地实现JSONWire协议 Nightwatch更改了Nightwatch.conf.js
文件中代理对象的工作方式,当他们开始使用代理而不是http代理时,不幸的是,似乎没有在任何地方记录它。但是它仍然存在,您只需要在代理对象中传入不同的参数。其接受的“协议”列在列表中,请参见下面的示例
firefox: {
desiredCapabilities: {
browserName: 'firefox',
version: 'latest',
},
proxy: {
host:'127.0.0.1',
port:8001,
protocol: 'http',
},
},
如果您需要使用代理进行身份验证“httpProxy”:“您的登录名:您的_password@your_proxy:8080“
使用选项2时,Chrome会忽略setting@Toolkit我又试了一次。遗憾的是,我可以证实这一点。可能是它被移除了。如果我找到一种新的方法,我会更新我的帖子
firefox: {
desiredCapabilities: {
browserName: 'firefox',
version: 'latest',
},
proxy: {
host:'127.0.0.1',
port:8001,
protocol: 'http',
},
},