2013-08-16 26 views
22

webdriver.chrome.driver sisteminin özelliği tarafından belirlenen ...Hata: Sürücü yürütülebilir yolunu ben <a href="https://code.google.com/p/selenium/wiki/WebDriverJs" rel="nofollow noreferrer">node.js selenium web driver example</a> çalışıyorum

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

var driver = new webdriver.Builder(). 
    usingServer('http://localhost:4444/wd/hub'). 
    withCapabilities(webdriver.Capabilities.chrome()). 
    build(); 

driver.get('http://www.google.com'); 
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver'); 
driver.findElement(webdriver.By.name('btnG')).click(); 
driver.wait(function() { 
return driver.getTitle().then(function(title) { 
    return title === 'webdriver - Google Search'; 
}); 
}, 1000); 

driver.quit(); 

... ama hata

promise.js:1542 
     throw error; 
      ^
UnknownError: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list 
    at new bot.Error (/Users/maks/Dropbox/nodeApps/orgi/node_modules/selenium-webdriver/lib/atoms/error.js:109:18) 

var olmalıdır Ben guessed YOL değişkeni ayarlamak için:

$ cat .bashrc 

export PATH=$PATH:/usr/local/git/bin/ 
export PATH=$PATH:~/bin 
export PATH=$PATH:~/Dropbox/chromedriver 

Ve yeniden başlatma konsolu, ama aynı hata var. böylece gibi başlatırken

+0

Linux'ta Protractor kullanarak çalışmak için uçtan uca testler almak için Firefox kullanmalıydım. – Droogans

cevap

42

here gelen selenyum-sunucu-standalone- * .jar kullanarak, webdriver.chrome.driver özelliği geçirebilirsiniz: Bu hatayı ortadan kaldırır

java -jar selenium-server-standalone-2.35.0.jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe" 

; Java komut satırı seçeneği -Dproperty=value, beklendiği gibi bir sistem özellik değeri ayarlar.

+0

Bu ters eğik çizgilerden kaçmaya gerek yok mu? – kajacx

+1

@kajacx: ​​Yukarıdaki sözdizimi bir "vanilya" komut satırı başlangıcı için doğrudur –

+0

Eski yazı olduğunu biliyorum ama bu çözüm, Chromedriver'dan şikayet eden Behat 2'den Behat 3'e geçtikten sonra benim için yararlı oldu. +1 – BentCoder

-2

Kodunuzdaki tırnak içinde belirtilmesi gereken

System.setProperty("webdriver.chrome.driver", "your_path"); 

Yolu yolunu ayarlamak için aşağıdaki kodu kullanabilirsiniz. Eğer selenyum sunucusu kullanmak ama sadece doğrudan chromedriver kullanmak istediğiniz istemiyorsanız

+4

nodejs ile çalışın. – CodeGuru

2

, böyle bir şey çalışır: Çok iyi belgelenmiş değil

var chrome = require('selenium-webdriver/chrome'); 
var service = new chrome.ServiceBuilder(__dirname + '/node_modules/.bin/chromedriver').build(); 
var driver = new chrome.createDriver(capabilities, service); 

, ben kaynağı etrafında poke vardı biraz kod.

+0

"chrome.Options()' işlevini kullanmaya devam ederken bunu nasıl kullanırsınız? –

0

Bulduğum en basit çözüm, chromedriver dosyasının yürütülebilir olmasını sağlamaktır.

Yanlış:

**-rw-rw-r--** 1 user user 5560736 Jul 31 00:56 chromedriver 

Doğru: o hayat buldu

**-rwxrwxr-x** 1 user user 58204704 Aug 14 08:18 phantomjs 

kez chromedriver eşleşti phantomjs

5

Her duruma hata alıyorum bazı biri:

Exception in thread "main" com.beust.jcommander.ParameterException: Unknown option: -Dwebdrive

Bu thread yardımcı olabilir:

Kullanım Parametreleri

kavanoz dosyası önce
java [-options] -jar jarfile [args...] (to execute a jar file) 

Yani komut olmalıdır:

java -jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe" selenium-server-standalone-2.35.0.jar 

gelecekte birisi yardımcı olur.

İlgili konular