Selenium webdriver不能与jasmine一起工作

selenium webdriver does not work with jasmine

本文关键字:一起 工作 jasmine webdriver 不能 Selenium      更新时间:2023-09-26

我正在尝试用Jasmine和selenium webdriver编写一个简单的UI测试。

然而,我不能使它工作。下面是我使用的环境:

  • 节点v6.6.0
  • jasmine@2.5.2(安装为全局模块)
  • selenium-webdriver@3.0.0-beta-3(安装在node_modules中)
  • ChromeDriver 2.25.426935 (in/usr/local/bin)
  • 最新Google chrome (Version 54.0.2840.71(64位))
  • Mac OS X 10.11.6 (埃尔卡皮坦)

代码非常简单(在typescript中):

import * as webdriver from 'selenium-webdriver';
let by = webdriver.By;
let until = webdriver.until;
describe("my suite", () => {
    beforeEach(() => {
    })
    afterEach(() => {
    })
    
    it("should work", () => {
        console.log("==========>");
        let driver = new webdriver.Builder()
                    .forBrowser("chrome")
                    .build();
        driver.get("https://www.google.com")
        .then(s => {
            return driver.getTitle();
        })
        .then(title => { console.log(title) })
        console.log("<==========");
    })
});

生成的JS代码:

"use strict";
var webdriver = require('selenium-webdriver');
var by = webdriver.By;
var until = webdriver.until;
describe("my suite", function () {
    beforeEach(function () {
    });
    afterEach(function () {
    });
    it("should work", function () {
        console.log("==========>");
        var driver = new webdriver.Builder()
            .forBrowser("chrome")
            .build();
        driver.get("https://www.google.com")
            .then(function (s) {
            return driver.getTitle();
        })
            .then(function (title) { console.log(title); });
        console.log("<==========");
    });
});

同样的代码可以运行没有任何问题作为一个独立的JS(带节点):

"use strict";
var webdriver = require('selenium-webdriver');
var by = webdriver.By;
var until = webdriver.until;
var driver = new webdriver.Builder()
    .forBrowser("chrome")
    .build();
driver.get("https://www.google.com").then(function (s) {
    return driver.getTitle();
})
    .then(function (title) { console.log(title); });
driver.quit();

我不知道茉莉花与硒一起工作是否需要任何配置。请帮助。

移动webdriver初始化到"beforeEach"没有帮助。如果我可以使代码工作,我将把它移动到"beforeEach",并退出它在"afterEach"。

我明白了。由于selenium-webdriver是异步操作,所以我需要为jasmine/mocha使用异步风味。

import * as webdriver from 'selenium-webdriver';
let by = webdriver.By;
let until = webdriver.until;
describe("my suite", () => {
    beforeEach(() => {
    })
    afterEach(() => {
    })
    it("should work", (done) => {
        console.log("==========>");
        let driver = new webdriver.Builder()
                    .forBrowser("chrome")
                    .build();
        driver.get("https://www.google.com")
        .then(s => {
            return driver.getTitle();
        })
        .then(title => { console.log(title); done(); })
        console.log("<==========");
    })
});