Selenium webdriver 如何在selenium webdriver mocha测试中访问文本输入值

Selenium webdriver 如何在selenium webdriver mocha测试中访问文本输入值,selenium-webdriver,mocha.js,Selenium Webdriver,Mocha.js,需要帮助测试用户与mocha selenium webdriver的交互。不知道从哪里找到获取文本输入值的正确方法。尝试了getAttribute()、getText等的各种变体。得到了相同的错误: TypeError: Object [object object] has no method 'getElementText' 这是我的密码: var assert = require('assert'), fs = require('fs'); var webdriver = req

需要帮助测试用户与mocha selenium webdriver的交互。不知道从哪里找到获取文本输入值的正确方法。尝试了getAttribute()、getText等的各种变体。得到了相同的错误:

TypeError: Object [object object] has no method 'getElementText'
这是我的密码:

var assert = require('assert'),
    fs = require('fs');

var webdriver = require('../node_modules/selenium-webdriver'),
    test = require('../node_modules/selenium-webdriver/testing'),
    remote = require('../node_modules/selenium-webdriver/remote');


test.describe('Google Search', function() {
  var driver;

  this.timeout(60000);

  test.before(function() {
    driver = new webdriver.Builder().
        withCapabilities(webdriver.Capabilities.chrome()).
        build();
  });

  test.it('should append query to title', function() {

    //setTimeout(done, 60000);

    driver.get('http://localhost:8080/devanagariTextField/index.html');

    driver.findElement(webdriver.By.id('textbox')).sendKeys('gaa');
    //driver.findElement(webdriver.By.name('btnG')).click();
    driver.wait(function() {
      return driver.getElementText('value').then(function(text) {
        console.log('TEXT: ' + text)
        return 'गा' === text;
      });
    }, 1000);
  });

  //test.after(function() { driver.quit(); });
});

您需要对元素而不是驱动程序对象执行getText/getAttribute调用

var myTextBox = driver.findElement(webdriver.By.id('textbox'));
myTextBox.sendKeys('gaa');

//You will probably want to use getAttribute()
var elementContent = myTextBox.getText();
var elementValue = myTextBox.getAttribute("value");

这就是最终对我起作用的原因。我需要在调用
sendKeys()
之后使用
.then()
函数,然后在该点返回value属性。Steve的回答很有帮助,但我是通过在GitHub上创建一个名为


作为一个面向对象的人,这种语法对我来说似乎很疯狂,所以我很高兴你让它工作起来了!感谢您的投票,很高兴帮助
getAttribute(“value”)
您真的是这样做的吗?!那没有任何意义。
input
元素的
value
属性与其
value
属性之间有很大的差异。Selenium是否做了jQuery所做的可怕的事情并将它们混为一谈?
    describe('textbox value', function (done) {
    it('is expected to equal ka when keys ka are sent', function (done) {
        driver.findElement(webdriver.By.id("textbox"))
          .sendKeys("ka")
          .then(function(){
            return driver.findElement(webdriver.By.id("textbox")).getAttribute("value");
          })
          .then(function (value) {
              expect(value).to.equal('ka');
              done();
          });
    });
});