/ / selenium WebDriver JavaScriptバインディングを実行できない - javascript、node.js、selenium、webdriver

javascript、node.js、selenium、webdriverなど、Selenium WebDriver JavaScriptバインディングを実行できません

私は現在セレン結合を使っていますpythonとJavaScriptバインディングを評価したいのですが、サンプルアプリケーションにこだわっています! 理解できないようですが、この例では何が悪いのでしょうか。どんな助けでも評価されるでしょう。

私のpackage.jsonファイルは次のようになります。

{
"name": "selenium_tests",
"version": "0.0.0",
"repository": {},
"devDependencies": {
"mocha": "^1.21.4",
"selenium-webdriver": "^2.43.5"
}
}

私のスクリプトは次のようになります。

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

var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.firefox()).
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 () {
"use strict";
return driver.getTitle().then(function (title) {
return title === "webdriver - Google Search";
});
}, 1000);

driver.quit();

実行時のエラースタックは次のとおりです。

D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:1745
throw error;
^
Error: Wait timed out after 1039ms
at D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:1412:29
at D:selenium_nodenode_modulesselenium-webdriverlibgoogbase.js:1582:15
at webdriver.promise.ControlFlow.runInNewFrame_ (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:1640:20)
at notify (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:444:12)
at then (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:497:7)
at Object.webdriver.promise.asap (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:749:11)
at newFrame.then.e (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:1656:25)
at D:selenium_nodenode_modulesselenium-webdriverlibgoogbase.js:1582:15
at webdriver.promise.ControlFlow.runInNewFrame_ (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:1640:20)
at notify (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:444:12)
==== async task ====
at webdriver.promise.ControlFlow.wait (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverpromise.js:1397:15)
at webdriver.WebDriver.wait (D:selenium_nodenode_modulesselenium-webdriverlibwebdriverwebdriver.js:589:21)
at Object.<anonymous> (D:selenium_nodeoriginal_sample.js:12:8)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)

回答:

回答№1は2

友好的な人々を支えてセレン、私はその謎を解き明かし、そして私はただの馬鹿げている。 あなたのIPアドレスがどこにあるかに応じてwww.google.comが自動的にリダイレクトされるので、私は「ローカライズされたgoogleページにアクセスし、タイトルはもう「webdriver - Google Search」ではなくなりました。

ローカライズされた適切なタイトルを使用するか、Googleがローカライズしないようにする

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

問題を解決しました。