簡體   English   中英

Javascript Mocha Selenium Test不起作用

[英]Javascript Mocha Selenium Test not working

我正在嘗試進行硒摩卡測試,以檢查Google網站的標題。 我正在Web.js和WebTest.js的配置中執行此操作。 這是我的課程,我不確定是否要采用正確的方法。

Web.js

const {Builder, By, Key, until, WebElement} = require('selenium-webdriver');
var driver = new Builder().forBrowser('internet explorer').build(); 
var url = 'https://www.google.com/';

function Web() {

    var promise = new Promise(function(resolve,reject){
        return driver.get(url);
    }).then(function(title) {
        var title;
        title = driver.getTitle().toString();
        return title;
    }).catch(function(err){
        console.log(err);
    });

    return title;
}



Web.prototype.getTitle = function (title) {

    var title =  Web();
    while (title == null){
        title = Web();
    }
    return (title);
}

module.exports.Web = Web;

WebTest.js

assert = require("assert");
Web = require("../Web.js").Web

describe("A web function", function () {
    describe("getting google's title", function () {
        it("should return Google", function () {
            var result = new Web().getTitle();
            assert.equal("Google", result, "But the string " + result + " was returned instead");
        });
    });
});

我收到錯誤“ ReferenceError:標題未定義”,這使我認為我遇到了范圍問題,但是我不確定如何正確執行此操作。

感謝您的任何幫助。

這應該工作:

var webdriver = require("selenium-webdriver");

var DriverFactory = {
    create: function (browser) {
            return driver = new webdriver
                .Builder().forBrowser(browser)
                .build();
    }
}
module.exports = DriverFactory;

然后在測試中使用此模塊

var DriverFactory = require('./driverFactory.js');

var assert = require("chai").assert;

describe("Get title", function () {
    this.timeout(40000);
    var driver;

    before(async function () {
        driver = await DriverFactory.create("firefox");
    });

    after(async function () {
        await driver.quit();
    });

    it("1.Open Google website", async function () {
        await driver.get("https://www.google.com");
    });

    it("2.The title is 'Google'", async function () {
        var title = await driver.getTitle();
        assert.equal(title, "Google");
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM