2016-10-25 7 views
0

JasmineとSelenium webdriverで簡単なUIテストを作成しようとしています。jasmineでセレンのwebdriverが動作しない

しかし、私はそれを動作させることができません。

  • ノードv6.6.0を(グローバルモジュールとしてインストール)
  • [email protected]
  • [email protected]:以下は、私が使用している環境があります-3(node_modulesに設置)
  • ChromeDriver 2.25.426935(は/ usr/local/binに)
  • 最新グーグルクローム(バージョン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"で終了します。

+0

エラーが表示されますか?または、typescriptによって生成されたコードが動作しませんか? – pagep

+0

私は実際にそれを理解しました。 selenium-webdriverは非同期操作なので、ジャスミン/モカAPIの非同期フレーバーを使用する必要があります。 –

答えて

2

私はそれを理解しました。 selenium-webdriverは非同期操作なので、ジャスミン/モカの非同期フレーバーを使用する必要があります。

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("<=========="); 
    }) 
}); 
関連する問題