2015-01-31 4 views
3

웹 사이트를 열고 PhantomJS로 Selenium을 사용하여 데이터를 가져 오려고하는데 웹 사이트를 여는 데 많은 시간이 걸립니다 (약 30 초). 그리고 다른 링크를 열 때마다 30 초를 기다려야합니다. 내 코드에 어떤 문제가 있습니까?Selenium과 PhantomJS는 각 링크를 여는 데 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. Set PhantomJS proxy type to none

3. Disable IPv6 protocol

PhantomJS release notes 주장을 마이크로 소프트 Windows에서 네트워크 성능 알려진 몇 가지 문제가있다. 릴리스 노트에 따르면 해결책은 프록시 유형을 none으로 설정하는 것이지만 작동하지 않습니다.

+0

사용중인 셀렌 및 phantomjs 버전은 무엇입니까? 감사. – alecxe

+0

phantomjs가 모든 자산을로드하지 못하게하려면 트릭을해야합니다 (CSS, 이미지 등은 필요 없습니다). – pguardiario

+0

저는 PhantomJS 1.9.8과 Serenium 2.44.0을 사용합니다. – Jonas

답변

2

기본적으로 30 초인 제한 시간을 정의하지 않았으므로 30 초를 기다려야합니다. 이 미리 정의 된 드라이버 서비스를 사용해야합니다.

 var phantomJSDriverService = PhantomJSDriverService.CreateDefaultService(); 
     IWebDriver browser = new PhantomJSDriver(phantomJSDriverService); 
     browser.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(0)); 
1

Selenium의 기본 제한 시간은 30 초입니다. browser.FindElements() (복수 버전)을 사용 중입니다. 계속하기 전에 30 초 동안 기다리십시오!

browser.manage().timeouts().implicitlyWait()으로 제한 시간을 줄일 수도 있고 명시 적 제한 시간을 사용할 수도 있습니다.

관련 문제