大家好>
我使用selenium和phantomJS驱动程序,所有客户端都有没有代理服务器的互联网连接,程序运行良好
如果用户有代理服务器程序可以正常工作(无需设置代理设置) 但是:
我的问题是当我有代理服务器时pahntomJS的正确使用是什么 我应该启动PhantomJS服务,PhantomJS选项等等......
我尝试的事情:
但结果仍然相同
我知道代理没有用户名和密码,否则它不应该首先进入网站。
我的phantomJS初始化代码:
private static IWebDriver driver;
private static PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
private static PhantomJSOptions options = new PhantomJSOptions();
service.HideCommandPromptWindow = true;
service.IgnoreSslErrors = true;
service.AddArgument(string.Format("--proxy={0}:{1}", proxyAddress, proxyPort)); // the way i tried to init proxy address
driver = new PhantomJSDriver(service, options, TimeSpan.FromSeconds(180));
driver.Navigate().GoToUrl(webSiteUrl);
driver.Manage().Window.Maximize();
感谢。
答案 0 :(得分:3)
在这个问题上似乎有些混乱,例如看PhantomJS问题: #12420或#11619。
乍一看,您的方法看起来是正确的(您提供了代理,其类型将设置为http
by default)。然而,如Selenium-related source所述,尝试在那里显示替代设置,即
var service = PhantomJSDriverService.CreateDefaultService();
service.ProxyType = "http";
service.Proxy = "host:port";
如果仍然不够,请尝试提供所需的功能:
var options = new PhantomJSOptions();
options.AddAdditionalCapability(CapabilityType.Proxy, new Dictionary<string, string>
{
{"proxyType", "manual"},
{"httpProxy", "host:port"}
});
这些只是随机的建议,至少尝试一下,并且如果有的话,请分享对你有用的东西(我指的是PhantomJS 2.0.0和Selenium.WebDriver 2.48.2)。