我在C#/ Winforms应用程序中使用Selenium和PhantomJs。 在使用此代码运行之前,我必须为PhantomJS设置代理:
var driverService = PhantomJSDriverService.CreateDefaultService("phantomjsdriver");
Proxy proxy = new Proxy();
proxy.HttpProxy = string.Format("xx.xx.xx.xx:port");
driverService.ProxyType = "http";
driverService.Proxy = proxy.HttpProxy;
driverService.AddArgument(string.Format("--proxy-auth={0}:{1}", "username", "password"));
using (var driver = new PhantomJSDriver(driverService))
{
//......
}
现在我有一个代理列表!我需要在每次请求后更改代理,所以我现在要做的就是退出驱动程序然后再使用新代理再次运行它。 这不是一种非常有效的方式,所以我想知道是否有任何方法可以在不退出驱动程序的情况下更改代理! 提前谢谢!
修改的 因此,PhantomJS中有一个function,可以让我们随时更改代理。
知道如何在Selenium下使用它吗?
答案 0 :(得分:0)
我找到了解决方案,在发现PhantomJS有setProxy函数后,只是如何使用它:
String script = "return phantom.setProxy(\"{0}\", {1}, \"http\", \"{2}\", \"{3}\")";
string func = string.Format(script, ppp.IP, ppp.Port, ppp.Username, ppp.Password);
Object obj = driver.ExecutePhantomJS(func);
希望此代码可以帮助其他人!