Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法运行selenium WebDriver JavaScript绑定_Javascript_Node.js_Selenium_Webdriver - Fatal编程技术网

无法运行selenium WebDriver JavaScript绑定

无法运行selenium WebDriver JavaScript绑定,javascript,node.js,selenium,webdriver,Javascript,Node.js,Selenium,Webdriver,我目前正在使用针对python的selenium绑定,并希望评估JavaScript绑定,但我仍然坚持使用示例应用程序! 由于我似乎无法理解,在这个例子中有什么问题,任何帮助都将不胜感激 我的package.json文件如下所示: { "name": "selenium_tests", "version": "0.0.0", "repository": {}, "devDependencies": { "mocha": "^1.21.4", "selenium-w

我目前正在使用针对python的selenium绑定,并希望评估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();
我的脚本如下所示:

{
  "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_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:1745
      throw error;
            ^
Error: Wait timed out after 1039ms
    at D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:1412:29
    at D:\selenium_node\node_modules\selenium-webdriver\lib\goog\base.js:1582:15
    at webdriver.promise.ControlFlow.runInNewFrame_ (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:1640:20)
    at notify (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:444:12)
    at then (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:497:7)
    at Object.webdriver.promise.asap (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:749:11)
    at newFrame.then.e (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:1656:25)
    at D:\selenium_node\node_modules\selenium-webdriver\lib\goog\base.js:1582:15
    at webdriver.promise.ControlFlow.runInNewFrame_ (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:1640:20)
    at notify (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:444:12)
==== async task ====
    at webdriver.promise.ControlFlow.wait (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\promise.js:1397:15)
    at webdriver.WebDriver.wait (D:\selenium_node\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:589:21)
    at Object.<anonymous> (D:\selenium_node\original_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)
D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:1745
投掷误差;
^
错误:等待在1039ms后超时
位于D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:1412:29
位于D:\selenium\u node\node\u modules\selenium webdriver\lib\goog\base.js:1582:15
位于webdriver.promise.ControlFlow.runInNewFrame(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:1640:20)
通知时(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:444:12)
此时(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:497:7)
在Object.webdriver.promise.asap(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:749:11)
在newFrame.then.e(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:1656:25)
位于D:\selenium\u node\node\u modules\selenium webdriver\lib\goog\base.js:1582:15
位于webdriver.promise.ControlFlow.runInNewFrame(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:1640:20)
通知时(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:444:12)
==异步任务====
在webdriver.promise.ControlFlow.wait(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\promise.js:1397:15)
在webdriver.webdriver.wait(D:\selenium\u node\node\u modules\selenium webdriver\lib\webdriver\webdriver.js:589:21)
反对。(D:\selenium\u node\original\u sample.js:12:8)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)

在支持selenium的友好人士的帮助下,我解开了谜团,我简直是个傻瓜。 由于www.google.com会根据你的ip地址自动重定向,我登陆了一个本地化的谷歌页面,标题不再是“webdriver-googlesearch”

只是使用正确的本地化标题,或者阻止谷歌不使用本地化标题

driver.get('http://www.google.com/ncr');
解决了这个问题