我在使用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))
任何想法的人?
答案 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