首页 文章

失败:无法读取未定义的属性'getWebElements'

提问于
浏览
0

我是量角器测试的新手 . 似乎getWebelement缺失了 . 我的保护者的版本是3.0.0 . 另一个属性很好(例如点击,评估...)

browser.wait(element(by.id('some-element')).getWebElement);

要么

browser.wait(element(by.id('some-element')).isPresent);

c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-(c: webdriver \ lib \ webdriver \ webdriver.js:720:12 at goog.async.run.processWorkQueue(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ goog \ async \ run.js:124:15)at process._tickCallback(node.js:368:9)来自:任务:at new wrappedCtr(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium -webdriver \ lib \ goog \ base.js:2468:26)goog.async.run.processWorkQueue(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ goog \ async \ run.js:124:15)at process._tickCallback(node.js:368:9)From:Task:at [object Object] .webdriver.WebDriver.wait(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ webdriver \ webdriver.js:716:21)at [object Object] .to . (匿名函数)[as wait](c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ lib \ protractor.js:65:25)在Object . (c:\ Users \ xxx \ WebstormProjects \ pt \ spec.js:45:21)在c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ jasminewd2 \ index.js:96:23 at controlFlowExecute(c:\ Users \ xxx \ AppData \)中的新wrappedCtr(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ goog \ base.js:2468:26)漫游\ npm \ node_modules \ protractor \ node_modules \ jasminewd2 \ index.js:82:18)来自:任务:在对象的控制流中运行它(“未知”) . (c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ jasminewd2 \ index.js:81:14)在attemptAsync(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ jasmine \ node_modules \ jasmine-core \ lib \ jasmine-core \ jasmine.js:1819:24)在QueueRunner.run(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ jasmine \ node_modules \ jasmine-core \ lib \ jasmine-core \ jasmine.js:1774:9)在QueueRunner.execute(c:\ Users \ xxx \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ jasmine \ node_modules \ jasmine-芯\ lib中\茉莉核\ jasmine.js:1762:10)

2 回答

  • 2
    browser.wait(element(by.id('some-element')).isPresent());
    

    在isPresent之后你缺少括号...

    并在getWebElement之后......

    browser.wait(element(by.id('some-element')).getWebElement());
    
  • 1

    您需要在函数中包含对 isPresent() 的调用,如下所示:

    browser.wait(function() {
      return element(by.id('some-element')).isPresent();
    })
    

    这样 isPresent() 每次 browser.wait 都会调用它 .

相关问题