无法使用WebdriverJS访问通过原型制作的功能

时间:2018-11-06 08:20:31

标签: javascript selenium selenium-webdriver webdriver prototype

因此,我将selenium webdriver与javascript一起使用,浏览器为firefox。
base_page看起来像这样:

function Page() {

    this.driver = new Builder().forBrowser('firefox').build();
      const driver = this.driver;

      this.visit = async(url) => {
        try {
          return await driver.get(url);
        } finally {
          console.log("visit: OK");
        }
      };

...

home_page看起来像这样:

const Page = require('./base_page');
Page.prototype.requestBtn = async() => {


    try {
        await this.write('input', 'user@fakemail.com');
        return {
          opacity: await this.find('.btn-lg').getCssValue('opacity'),
          state: await this.find('.btn-lg').isEnabled()
        };
      } catch(err) {
        console.log(err);
      }

};
...

mocha.test.js中,我导入home_page。我可以使用在base_page中创建的函数,但是不能访问在home_page中的函数。
例如,page.visit()page.quit()在打or,但page.requestBtn()不是。

const assert = require('assert');
const {Builder, By, Key, until} = require('selenium-webdriver');
const Page = require('../lib/home_page');
let page;


describe('Test', () => {
  beforeEach(async() => {
    page = new Page();
    await page.visit('https://library-app.firebaseapp.com');
  });


  afterEach(async() => {
    await page.quit();
  });


  it("Example", async() => {
    await page.requestBtn();
  });

...

0 个答案:

没有答案