我在谷歌和SO网站上搜索过,我得到了JAVA的答案,但似乎没有得到node.js的答案
我有一个需要时间加载的网络应用程序.我会selenium程序等到页面加载然后执行一些操作.
我目前的代码如下
//dependencies
var webdriver = require('selenium-webdriver'),
util = require('util'),
_ = require('underscore');
var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();
var branchName = _.isUndefined(process.argv[3]) ? 'branch' : process.argv[3],
hostName = _.isUndefined(process.argv[2]) ? 'localhost' : process.argv[2],
appTmpl = 'http://%s/%s',
username = 'xxxx',
password = 'xxxx';
var appUrl = util.format(appTmpl, hostName, branchName);
driver.get(appUrl);
driver.findElement(webdriver.By.name("username")).sendKeys(username);
driver.findElement(webdriver.By.name("password")).sendKeys(password);
driver.findElement(webdriver.By.name("login_button")).click();
driver.quit();
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
C:\Work\study\selenium\node_modules\selenium-webdriver\lib\webdriver\promise.js:1643
throw error;
^
NoSuchElementError: no such element
(Session info: chrome=37.0.2062.103)
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.1 SP1 x86_64)
at new bot.Error (C:\Work\study\selenium\node_modules\selenium-webdriver\lib\atoms\error.js:109:18)
at Object.bot.response.checkResponse (C:\Work\study\selenium\node_modules\selenium-webdriver\lib\atoms\response.js:106:9) …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个登录到网站的节点功能,并且无法使其正常工作.我试图等待页面加载使用该帖子中isElementPresent引用的函数,但它似乎没有工作.
这是我到目前为止所拥有的:
const webdriver = require('selenium-webdriver')
const By = webdriver.By
var username = ''
var password = ''
var timeout = 5000
function FacebookLogin(username, password) {
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build()
driver.get('http://www.facebook.com')
driver.wait(function() {
return driver.isElementPresent(By.id('email'))
}, timeout)
var user = driver.findElement(By.id('email'))
user.sendKeys(username)
var pass = driver.findElement(By.id('pass'))
pass.sendKeys(password)
pass.submit()
driver.sleep(5000)
driver.quit()
}
FacebookLogin(username, password)
Run Code Online (Sandbox Code Playgroud)
当我运行该功能虽然我收到错误TypeError: driver.isElementPresent is not a function.这里发生了什么,我错过了什么?