web-dev-qa-db-ja.com

分度器インスタンスとブラウザ

同様のQAを検索しようとしましたが、満足できるQAが見つかりませんでした。だから基本的に私はいくつかの例でそれが使用されているのを見ました

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

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

browser.get(url);

したがって、質問は次のとおりです。特定のURLを取得するために分度器インスタンスとブラウザを使用する場合の違いは何ですか?また、PSでの私の仮定が正しいです、どちらがより良い習慣です:分度器だけを使うか、それともそれらを混ぜるか?

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

26
Tek

ブラウザは、新しい推奨構文です。 browserprotractor.getInstance()と同じです。

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

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

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

38
Andres D

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

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

protractor.setInstance(browser);

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

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

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

5
gontard