タグ付けされた質問 「protractor」

4
toBe(true)vs toBeTruthy()vs toBeTrue()
どのような違いがあるexpect(something).toBe(true)、expect(something).toBeTruthy()とexpect(something).toBeTrue()? 注toBeTrue()あるカスタムマッチャで導入されたjasmine-matchersような他の有用かつ便利なマッチャーの間toHaveMethod()またはtoBeArrayOfStrings()。 この質問は一般的なものですが、実際の例として、要素がに表示されることをテストしていますprotractor。この場合、どのマッチャーを使用すればよいですか? expect(elm.isDisplayed()).toBe(true); expect(elm.isDisplayed()).toBeTruthy(); expect(elm.isDisplayed()).toBeTrue();

3
WebDriver click()とJavaScript click()
物語: ここStackOverflowで、Selenium WebDriverの「クリック」コマンドを使用して要素をクリックすることはできず、スクリプトを実行することでJavaScriptクリックでそれを回避できることを報告しているユーザーを見てきました。 Pythonでの例: element = driver.find_element_by_id("myid") driver.execute_script("arguments[0].click();", element) WebDriverJS / Protractorの例: var elm = $("#myid"); browser.executeScript("arguments[0].click();", elm.getWebElement()); 質問: 通常のWebDriverクリックが機能しないのに「JavaScript経由」をクリックすると機能するのはなぜですか?正確にこれが起こっているのはいつですか、そしてこの回避策(もしあれば)の欠点は何ですか? 私は個人的にこの回避策を使用しましたが、なぜそれをしなければならないのか、またどのような問題が発生する可能性があるのか​​を完全には理解していません。

1
エンドツーエンドのテストにProtractorまたはKarmaを使用する必要がありますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 この質問を改善する エンドツーエンドのテストにProtractorまたはKarmaを使用する必要がありますか? Angular-seedはProtractor / Selenium WebDriver for E2Eを使用していますが、angular-phonecatチュートリアルではカルマを使用しています。 ユニットテストにはKarmaを、E2EにはProtractorを使用する必要があると読みましたが、これは問題ないようですが、他の開発者の意見を得るためにここでお願いしたいと思いました。

30
ドロップダウンprotractorjs e2eテストでオプションを選択する方法
分度器を使用して角度e2eテストのドロップダウンからオプションを選択しようとしています。 以下は、selectオプションのコードスニペットです。 <select id="locregion" class="create_select ng-pristine ng-invalid ng-invalid-required" required="" ng-disabled="organization.id !== undefined" ng-options="o.id as o.name for o in organizations" ng-model="organization.parent_id"> <option value="?" selected="selected"></option> <option value="0">Ranjans Mobile Testing</option> <option value="1">BeaverBox Testing</option> <option value="2">BadgerBox</option> <option value="3">CritterCase</option> <option value="4">BoxLox</option> <option value="5">BooBoBum</option> </select> 私が試してみました: ptor.findElement(protractor.By.css('select option:1')).click(); これにより、次のエラーが発生します。 無効または無効な文字列が指定されましたビルド情報:バージョン: '2.35.0'、リビジョン: 'c916b9d'、時間: '2013-08-12 15:42:01'システム情報:os.name: 'Mac OS …

8
分度器を使用して要素が表示されているかどうかを確認する方法
分度器を使用して要素が表示されるかどうかをテストしようとしています。要素は次のようになります。 <i class="icon-spinner icon-spin ng-hide" ng-show="saving"></i> Chromeコンソールでは、このjQueryセレクターを使用して、要素が表示されるかどうかをテストできます。 $('[ng-show=saving].icon-spin') [ <i class=​"icon-spinner icon-spin ng-hide" ng-show=​"saving">​</i>​ ] > $('[ng-show=saving].icon-spin:visible') [] しかし、分度器で同じことをしようとすると、実行時にこのエラーが発生します。 InvalidElementStateError: invalid element state: Failed to execute 'querySelectorAll' on 'Document': '[ng-show=saving].icon-spin:visible' is not a valid selector. なぜこれは有効ではないのですか?分度器を使用して可視性を確認するにはどうすればよいですか?

8
Protractor / WebdriverJSでデフォルトのブラウザウィンドウサイズを設定する方法
何らかの理由で職場でテストを実行するとブラウザーは最大化されますが、自宅でテストを実行すると、幅が約50%のブラウザーウィンドウしか開かれません。これにより、下にスクロールするなどの不一致が生じるため、テストを実行するすべてのマシンで同じサイズのブラウザーウィンドウを開くようにしたいのですが。これを行う最良の方法は何ですか?(私は他の言語のいくつかの答えを見つけましたが、それらをjavascriptに適応させることができませんでした) 追加 browser.executeScript('window.moveTo(0,0);'+ 'window.resizeTo(screen.width, screen.height);'); 何もしません(どうやらwindow.moveTo、window.resizeToChromeではサポートされていません)。

8
分度器の入力でgetTextする方法
分度器のドキュメントで、次の例を確認します。 describe('by model', function() { it('should find an element by text input model', function() { var username = element(by.model('username')); username.clear(); username.sendKeys('Jane Doe'); var name = element(by.binding('username')); expect(name.getText()).toEqual('Jane Doe'); }); ここではっきりしているのは、「by.model」を使用して入力ボックスに値を設定できることですが、入力ボックスを見て内容を確認したい場合は、「by.binding」を使用する必要があります。 私は(要約すると)私がしているコードのセットを持っています: element(by.model('risk.name')).sendKeys('A value'); expect(element(by.model('risk.name')).getText()).toEqual('A value'); (実際のコードでは、エンティティを保存してから編集モードでエンティティに戻り、実際に値が保存されたことを確認しています。ただし、結局は同じことであり、このサンプルコードでも同じ問題が発生します)。 これは私にエラーを与えます: Error: Expected '' to equal 'A value'. 理論的には、ドキュメントの例に従って、代わりに次のことができます: element(by.model('risk.name')).sendKeys('A value'); expect(element(by.binding('risk.name)).getText()).toEqual('A value'); しかし、by.bindingは完全修飾モデルを好きではないようです。エラーが発生します。 …


10
要素にProtractorを使用してクラスがあるかどうかをテストする方法は?
Angularアプリをe2eテストするためにProtractorを試してみましたが、要素に特定のクラスがあるかどうかを検出する方法がわかりませんでした。 私の場合、テストは送信ボタンをクリックし、form [name = "getoffer"]に.ngDirtyクラスがあるかどうかを確認します。解決策は何ですか? describe('Contact form', function() { beforeEach(function(){ browser.get('http://localhost:9000'); element(by.linkText('Contact me')).click(); }); it('should fail form validation, all fields pristine', function() { element(by.css('.form[name="getoffer"] input[type="submit"]')).click(); expect(element(by.name('getoffer'))).toHaveClass('ngDirty'); // <-- This line }); });


12
Angularjs以外のWebサイトでProtractorを使用する方法は?
AngularJSWebアプリケーション用に作成されたProtractorフレームワークを見つけました。 AngularJSを使用していないWebサイトでProtractorを使用するにはどうすればよいですか? 私は最初のテストを作成し、分度器がこのメッセージをトリガーします。 Error: Angular could not be found on the page https://www.stratexapp.com/ : retries looking for angular exceeded
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.