运行 时更改 PhantomJS 代理设置

Change PhantomJS proxy settings while running

我在 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 下使用它吗?

我找到了解决方案,发现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);

希望此代码对其他人有所帮助!