27

同様の QA を探してみましたが、満足できるものを見つけることができませんでした。だから基本的に私はいくつかの例でそれが使用されているのを見ました

ptor = protractor.getInstance();
ptor.get(url);

そして、他のいくつかの例では、それが使用されています。

browser.get(url);

質問は次のとおりです。特定の URL を取得するために分度器インスタンスとブラウザを使用する違いは何ですか? また、PS での私の仮定が正しければ、分度器のみを使用するか、それらを混合するのがより良い方法ですか?

PS また、デバッガーとの使用方法にも同じ違いが見られました。分度器は Web ドライバーのラッパーであることを知っており、protractor.getInstance().get(url) は browser.get(url) の暗黙的な呼び出しであると想定しています。

4

2 に答える 2

39

browser は新しい優先構文です。browserと同じprotractor.getInstance()です。

数バージョン前に、新しい構文が導入されました。主な変更点は次のとおりです。

  • browser分度器のインスタンスです
  • element(locator)の新しい構文ですptor.findElement(locator)
  • by[strategy]の新しい構文ですprotractor.By.[strategy]

新しいドキュメントは次のとおりです: http://angular.github.io/protractor/#/api

于 2014-02-03T21:16:29.097 に答える
5

分度器のソース コードでは、ブラウザと分度器のシングルトン インスタンスが同じオブジェクトである可能性があります。

var browser = protractor.wrapDriver(
    driver,
    config.baseUrl,
    config.rootElement);
browser.params = config.params;

protractor.setInstance(browser);

テストでそのアサーションを検証することもできます。

describe('My page', function() {
  it('should display something', function() {
    console.log('test ' + (protractor.getInstance() === browser));
    ...
  });
});

私の好みは、常に分度器シングルトン インスタンスを使用することです。でも、インスタンスブラウザ、もしくはその両方を使っても特に不便はないと思います。

于 2014-02-03T13:38:44.370 に答える