我正在尝试打开一个网站并使用Selenium和PhantomJS获取一些数据,但是打开一个网站需要很多时间(大约30秒)。每次我打开其他链接时,我都必须等待 30+秒。我的代码有什么问题?
static void Main(string[] args)
{
IWebDriver browser = new PhantomJSDriver();
var URL = "http://www.cbssports.com/nba/playerrankings ";
browser.Navigate().GoToUrl(URL);
//Position
var title = browser.FindElements(By.CssSelector(".tableTitle"));
Console.WriteLine(title.First().Text);
Console.Read();
}
我尝试做的事情:
1.将幻影JS代理类型设置为无
2.禁用互联网选项:自动检测设置
3.禁用IPv6协议
PhantomJS发行说明声称,Microsoft Windows上的网络性能存在一些已知问题。根据发行说明,解决方案是将代理类型设置为无,但这不起作用。
您必须等待 30 秒,因为您尚未定义默认为 30 秒的超时。应使用此预定义的驱动程序服务。
var phantomJSDriverService = PhantomJSDriverService.CreateDefaultService();
IWebDriver browser = new PhantomJSDriver(phantomJSDriverService);
browser.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(0));
Selenium 的默认超时为 30 秒。您正在使用browser.FindElements()
(复数版本),它将等待整整 30 秒,然后再继续!
您可以使用 browser.manage().timeouts().implicitlyWait()
来减少超时,也可以使用显式超时。