相关疑难解决方法(0)

Selenium WebDriver等到元素显示

我在谷歌和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)

javascript node.js selenium-webdriver

40
推荐指数
4
解决办法
7万
查看次数

isElementPresent不是函数

我希望驱动程序等到元素可见或存在,但它根本不起作用!以下代码

it('shows events in "Event overview"', function(){
        driver.findElement(By.css('#bs-example-navbar-collapse-1 > ul > li:nth-child(2) > a')).click();
        driver.wait(function () {
            return driver.isElementPresent(By.css('body > div.container > div > div.events-container.ng-scope > div:nth-child(1) > div.row.row-event.detailed-view > div.col-xs-9.col-sm-9.col-md-10'));
        }, 3000);
});
Run Code Online (Sandbox Code Playgroud)

给我以下错误

driver.isElementPresent is not a function
Run Code Online (Sandbox Code Playgroud)

为什么?我从这里复制了答案:Selenium WebDriver等到元素显示.其他答案也不起作用.我应该展示更多我的代码吗?我在客户端项目上工作,我不想发布客户端的名称.

selenium node.js selenium-webdriver

2
推荐指数
1
解决办法
1579
查看次数