在PhantomJS中设置代理

时间:2015-03-16 02:34:04

标签: c# selenium-webdriver proxy phantomjs

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

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

(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))

任何想法的人?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,使用java客户端但没关系。 我发现的修复是通过CLI传递capatibilites

            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