2016-08-21 14 views
0

私はSeleniumを初めて、Node.jsを初めて使用しています。私はnpmをインストールし、chromeriverとgeckodriverをPATHのディレクトリに入れました。私は「ノードのcheese.js」を実行しているのMac OS X上で午前、私はすぐに取得:参考Selenium Webdriver Node.js

cheese.js:1 
(function (exports, require, module, __filename, __dirname) { var driver = new webdriver.Builder().build(); 

ReferenceError: webdriver is not defined 
    at Object.<anonymous> (/Users/bjbarouch/Sites/cheese.js:1:80) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Function.Module.runMain (module.js:441:10) 
    at startup (node.js:139:18) 
    at node.js:974:3 

を、チーズのコードは次のとおりです。

var driver = new webdriver.Builder().build(); 
driver.get('http://www.google.com'); 

var element = driver.findElement(webdriver.By.name('q')); 
element.sendKeys('Cheese!'); 
element.submit(); 

driver.getTitle().then(function(title) { 
    console.log('Page title is: ' + title); 
}); 

driver.wait(function() { 
    return driver.getTitle().then(function(title) { 
     return title.toLowerCase().lastIndexOf('cheese!', 0) === 0; 
    }); 
}, 3000); 

driver.getTitle().then(function(title) { 
    console.log('Page title is: ' + title); 
}); 

driver.quit(); 

答えて

0

このエラーが原因chromedriverの明確ではありませんかgeckodriverパスの問題。 Webdriverを解決できないという不満があります。 私はまた、JavaScriptコードにはあまりよく慣れていません。 しかし、webdriverモジュールについては、webdriverについてcheese.jsにインポートする必要があります。

編集:以下は作業スクリプトです。 手順: 場所 1. JavaScriptを実行できるようにするのNode.jsをインストールパスにchromedriverバイナリ、それはまた、ディレクトリ内のいくつかのファイルにNPM 2.コピーし、以下のスクリプトをインストールします 3. cd this dir 4. npm install selenium-webdriverこのスクリプトを実行する前に 5.ノードscirpt.js

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

driver.get('http://www.google.com'); 

var element = driver.findElement(webdriver.By.name('q')); 
element.sendKeys('Cheese!'); 
element.submit(); 

driver.getTitle().then(function(title) { 
    console.log('Page title is: ' + title); 
}); 

driver.wait(function() { 
    return driver.getTitle().then(function(title) { 
    return title.toLowerCase().lastIndexOf('cheese!', 0) === 0; 
    }); 
}, 3000); 

driver.getTitle().then(function(title) { 
    console.log('Page title is: ' + title); 
}); 

driver.quit(); 

、あなたはセレンwebdriverをパッケージをインストールする必要があります。この実行のために: - :私が言う場合

var webdriver = require('selenium-webdriver'); 
var chrome = require('selenium-webdriver/chrome'); 
var co = new chrome.Options(); 
co.setChromeBinaryPath("/Applications/UsrBin/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"); 
var driver = new webdriver.Builder() 
    .forBrowser("firefox") 
    .setChromeOptions(co) 
    .build(); 

console.log("hello"); 
driver.quit(); 

なぜそれが動作しないnpm install selenium-webdriver

+0

これは、Seleniumサイトのサンプルをコピーして貼り付けたもので、Webdriverが見つからないということがわかりません。 javascriptにインクルードやインポートなどのことはなく、私が示したコードの前にスクリプトが追加されているはずがないということはありません。したがって、私はそれを解決するために何をすべきかを知らない。 –

+0

他のオンラインの例を参照し、 で始めると、selenium = require( "selenium-webdriver"); PATH上にあっても、クロムバイナリが見つからないという別のエラーメッセージが表示されます。 –

+0

javascriptの作業サンプルを含めるように答えを更新しました。あなたはwebdriverモジュールについてスクリプトに伝えるためにimportと同等のrequire( "selenium-webdriver")が必要であることは間違いありませんでした。私はスクリプトを実行することができた、それはGoogleを起動し、チーズを検索しました。参照:http://seleniumhq.github.io/selenium/docs/api/javascript/index.html –

0

オーケー、ここでは、Google Crhomeが非標準の場所にインストールした場合のNode.jsのコンテキストでrequriedれているものですforBrowser( "firefox")しかし、私がしなければクラッシュする?

ビルド()とブラウザオプションの完全ガイドのURLは何ですか?

+0

投稿の編集や他の質問があったはずです。また、T.A.の義理の息子の「hi」。 –