如何使用 mocha、webdriver-io 和 phantomjs 测试工具提示文本?

How to test tooltip text with mocha, webdriver-io and phantomjs?

我正在使用 webdriver-io 来测试输入表单,如果输入文本不符合指定条件,我想测试在跳出时工具提示文本的外观。下面是一个试过没有成功的

var webdriverio = require('webdriverio');
var browser = webdriverio.remote({desiredCapabilities:{browserName: 'phantomjs'} });
...
describe('Test tooltip text', function(){

  before(function(){
    //return browser.url(site);
  });

  before(function(){
    // return browser.setValue(key, value);
  });

  it('should display a tooltip text', function(){
    broswer.getHTML('body').then(function(form){
      form.should.contain('message in tooltip')
    });
  });// it block ends

 });// describe block ends
...

此测试将我重定向到没有工具提示的原始表单。当我尝试在 chrome 浏览器中在此输入表单中输入值时,我确实看到了工具提示。我知道在测试中输入的值是正确的,因为我在控制台记录了输入并在跳出后,我看到输入字段样式在 HTML 中显示为红色。我错过了什么?

您可以阅读元素的 "title" 标签,它只是工具提示。

经过多次尝试,我找到了使用 setTimeout 捕获工具提示文本的解决方案。这是我的测试:

... 
it('should display a tooltip text', function(){
   broswer.getHTML('body').then(function(form, done){
     form.should.contain('message in tooltip');
     setTimeout(done, 1000);
  });
});// it block ends
...

...

希望这个解决方案对其他人有帮助!