Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在nightwatch.js中设置代理_Node.js_Selenium Webdriver_Http Proxy_Nightwatch.js - Fatal编程技术网

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',
          },
        },