2014-10-08 91 views
0

我目前使用的是用于python的硒绑定,并且想要评估JavaScript绑定,但我坚持使用示例应用程序! 正如我似乎无法理解,这个例子有什么问题,任何帮助,将不胜感激。无法运行硒WebDriver 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_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) 

回答

2

在友善的人们支持硒的帮助下,我解开了这个谜,我只是简单的愚蠢。 由于www.google.com会根据您的IP地址所在的位置自动重定向,因此我已登陆本地化的Google页面,标题不再是“webdriver - Google搜索”。

只是用正确的本地化标题或阻止谷歌没有使用

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

解决了这个问题进行本地化。