【问题标题】:Set proxy in PhantomJS在 PhantomJS 中设置代理
【发布时间】:2015-03-16 02:34:03
【问题描述】:

我在使用 PhantomJS 设置代理时遇到了一点问题,我尝试这样做:

OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy();
proxy.HttpProxy = p;
PhantomJSOptions des = new PhantomJSOptions();
des.AddAdditionalCapability(CapabilityType.Proxy, proxy);

(p 只是代理列表循环中的一个字符串,是的,p 设置正确)

但是当我在页面上查找某些内容时它说元素未找到,因为它正在导航到 URL,但它返回的页面源是空白的,如下所示:http://prntscr.com/6hcmz4

更新代码 #1 - 没有运气

  PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
                service.IgnoreSslErrors = true;
                service.LoadImages = false;
                service.Proxy = p;

                using (var driver = new PhantomJSDriver(service))

各位有什么想法吗?

【问题讨论】:

  • 该网站是 Twitter,所以他们显然使用 SSL (HTTPS),我尝试了 HTTP 和 HTTPS 代理,结果相同:( 编辑:另外,最新的 PhantomJS 版本。
  • PhantomJS 2.0 版(来自 NuGet)我的更新代码也在上面,我用它检查了 IPChicken,返回我的 IP,所以它没有设置代理。

标签: c# selenium-webdriver proxy phantomjs


【解决方案1】:

我有同样的问题,java客户端,但没关系。 我发现的解决方法是通过 CLI 传递功能

            ArrayList<String> cliArgsCap = new ArrayList<String>();
            cliArgsCap.add(String.format("--proxy=%s:%s", proxy.getHost(), proxy.getPort()));
            cliArgsCap.add(String.format("--proxy-auth=%s:%s", proxy.getUsername(), proxy.getPassword()));
            cliArgsCap.add("--webdriver=4444");
            cliArgsCap.add("--proxy-type=http");
           desiredCapabilities.setCapability("phantomjs.cli.args", cliArgsCap);

重点是通过cliArgsCap.add("--webdriver=4444"); 因为有一些关于这个的问题 https://github.com/ariya/phantomjs/issues/12420 https://github.com/ariya/phantomjs/issues/11619

【讨论】:

    猜你喜欢
    • 2015-04-18
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 2018-01-02
    相关资源
    最近更新 更多