为什么定义了驱动程序对象,但webdriver对象不是?

时间:2014-06-29 19:13:39

标签: javascript node.js object selenium-webdriver webdriver

问题

为什么驱动程序工作正常(标题被检索和测试),但是web驱动程序是未定义的(无法getText)?

预期结果

测试将成功完成。

实际结果

 ․ Google  when at home Page should have correct title: 141ms
  1) Google  when at home Page when searching should input search term

  1 passing (3s)
  1 failing

  1) Google  when at home Page when searching should input search term:
     ReferenceError: webdriver is not defined

使用的文件

测试文件

用于通过执行命令运行测试:mocha -t -R list index.js(假设index.js是文件名)

var fs            = require('fs'),
    chai          = require('chai'),
    assert        = chai.assert,
    expect        = chai.expect,
    test          = require('selenium-webdriver/testing'),
    webdriver     = require('selenium-webdriver'),
    Page          = require('./pageobjects/pages/home');

test.describe('Google', function(){

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

        //initialize driver and webdriver on the Page Object
        Page.webdriver = webdriver;
        Page.driver = driver;
    });

    test.describe("", function () {
        test.before(function(){
          //console.log(Page);
        });

        test.describe("when at home Page", function () {
          test.before(function () {
            Page.get(Page.URL);
          });

          test.it("should have correct title", function () {
            Page.getTitle()
            .then(function (title) {
              assert.equal(title, 'Google');
            });
          });

          test.describe("when searching", function () {
            test.it("input search term", function () {
              Page.sendKeys(Page.Search.INPUT, 'test');
              Page.getText(Page.Search.INPUT)
              .then(function (text) {
                assert.equal(text, 'test');
              });
            });
        });

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

用于创建页面的对象

var Page = {
  getTitle : function getTitle() {
    return driver.getTitle();
  },
  get : function get(url) {
    return driver.get(url);
  },
  sendKeys : function sendKeys(element, text) {
    console.log(webdriver);
    driver.findElement(webdriver.By.css(element)).sendKeys(text);
  },
  click : function click(element) {
    return driver.findElement(webdriver.By.css(element)).click();
  }
};

module.exports = Page;

主页

表示页面的对象,使用mixins来获取Page的函数 遗漏了搜索文件,因为它与问题无关

var Page = require('./page'),
    Search = require('../components/search'),
    extend = require('extend');

var Home = {
  URL : 'http://google.com',
  Search : Search
};
module.exports = Home;

//extend home with page
extend(module.exports, Page);

0 个答案:

没有答案