2017-02-26 108 views
3

這是我第一次嘗試selenium-webdriverNodeJsWindows 7環境中。以下是我已經做了嘗試,使其工作:在NodeJs上運行硒

  1. 安裝NodeJs 7.5
  2. 使用npm
  3. 下載chromedriver.exe 2.27"C:\Selenium Utilities\chromedriver"
  4. 安裝selenium-webdriver(如在他們的Git https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver指出正式硒支持)新增chromedriverPATHC:\Selenium Utilities\chromedriver;
  5. 加入我的第一次測試,從Seleni嗯混帳頁:

    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

其結果是,我得到錯誤說(節選):

"...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)?"

我在做什麼錯?我是否需要運行單獨的Selenium服務器才能運行?

+0

你解決它? – Pipe

回答

2

我的代碼看起來不錯,所以我運行它來檢查。我可以確認它runs fine(在macOS Sierra上)。 Here's a link to the repo I created

看起來您可能需要延長頁面標題的等待時間,但有時我發現加載Google的頁面標題需要花費一秒多的時間。

另一種選擇是嘗試託管服務,而不是設置自己的硒服務器。有很多種,我只是爲了這個目的而製作了Obehave。零設置是必需的 - 您可以立即開始編寫測試。

0

通過npm安裝chromedriver。

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(); 
});