2017-02-26 2 views
3

selenium-webdriverNodeJs 인 첫 번째 시도는 Windows 7 환경입니다. 여기에 내가이 일을 만들려고 노력했을 것입니다 :NodeJs에서 Selenium을 실행 중

  1. 설치된 NodeJs 7.5
  2. npm
  3. "C:\Selenium Utilities\chromedriver"
  4. chromedriver.exe 2.27을 다운로드하여 selenium-webdriver를 설치 (그 망할 놈의 https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver에 언급 한 바와 같이 공식적으로 셀레늄 지원) 내 PATHchromedriver을 추가했습니다. C:\Selenium Utilities\chromedriver;
  5. Seleni의 첫 번째 테스트 추가되었습니다. 음 힘내 페이지 : 내가 잘못 뭐하는 거지

    "...throw new Error('Do not know how to build driver: ' + browser"

    "Error: Do not know how to build driver: C; did you forget to call usingServer(url)?"

    :

    var webdriver = require('selenium-webdriver'), 
         By = webdriver.By, until = webdriver.until; 
    
    var driver = new webdriver.Builder() 
        .forBrowser('chrome') 
        .build(); 
    
    driver.get('http://www.google.com/ncr'); 
    driver.findElement(By.name('q')).sendKeys('webdriver'); 
    driver.findElement(By.name('btnG')).click(); 
    driver.wait(until.titleIs('webdriver - Google Search'), 1000); 
    driver.quit(); 
    
  6. 시도 실행 테스트 결과

node test.js을 통해, 내가 말하는 오류 (발췌)를 얻을? 이것을 실행하려면 별도의 Selenium 서버를 실행해야합니까?

+0

당신이 그것을 해결 했습니까? – Pipe

답변

2

코드가 잘 보였으므로 확인을 위해 실행했습니다. 나는 그것을 runs fine (macOS Sierra에서) 확인할 수 있습니다. Here's a link to the repo I created.

페이지 제목에 대한 대기 시간을 연장해야하는 것처럼 보입니다. Google의 페이지 제목을로드하는 데 1 초도 걸리는 경우가 종종 있습니다.

또 다른 옵션은 자체 셀렌 서버를 설정하는 대신 호스트 된 서비스를 사용하는 것입니다. 다양한 용도로 사용할 수 있습니다. 정확히이 목적으로 Obehave을 만들었습니다. 설정이 필요 없습니다. 바로 테스트를 시작할 수 있습니다.

0

크롬 드라이버를 npm을 통해 설치하십시오.

npm install chromedriver --save-dev 

그런 다음 JS의 상단에 크롬을 추가

var chrome = require('selenium-webdriver/chrome'); 

마지막으로 스크립트 :

var webdriver = require('selenium-webdriver'), 
     By = webdriver.By, until = webdriver.until; 
     var webdriver = require('selenium-webdriver'); 

var chrome = require('selenium-webdriver/chrome'); 

var driver = new webdriver.Builder() 
    .forBrowser('chrome') 
    .build(); 

driver.get('http://www.google.com/ncr').then(function(){ 
    driver.findElement(By.name('q')).sendKeys('webdriver'); 
    driver.findElement(By.name('btnK')).click(); 
    driver.quit(); 
}); 
관련 문제