Selenium和PhantomJS需要30秒才能打开每个链接



我正在尝试打开一个网站并使用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() 来减少超时,也可以使用显式超时。

最新更新