[解決済み] protractorjs e2e テストでドロップダウンのオプションを選択する方法
質問
protractorを使って、angular 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 X', os.arch: x86_64'、os.version: '10.9'、java.version: '1.6.0_65' となります。 ドライバー情報: driver.version: unknown
も試してみました。
ptor.findElement(protractor.By.xpath('/html/body/div[2]/div/div[4]/div/div/div/div[3]/ng-include/div/div[2]/div/div/organization-form/form/div[2]/select/option[3]')).click();
これでは、以下のようなエラーになります。
ElementNotVisibleError: 要素は現在表示されていないので、対話できない可能性があります。 コマンドの持続時間またはタイムアウト: 9 ミリ秒 ビルド情報: バージョン: '2.35.0', リビジョン: 'c916b9d', 時刻: '2013-08-12 15:42:01'. システム情報: os.name: 'Mac OS X', os.arch: x86_64', os.version: '10.9', java.version: '1.6.0_65'. セッション ID: bdeb8088-d8ad-0f49-aad9-82201c45c63f ドライバ情報: org.openqa.selenium.firefox.FirefoxDriver 機能 [{platform=MAC, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, version=24.0, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, browserConnectionEnabled=true, nativeEvents=false, webStorageEnabled=true, applicationCacheEnabled=false, takesScreenshot=true} ]について説明します。
誰かこの問題で私を助けてください、または私がここで間違っているかもしれないことに光を投げてください。
どのように解決するには?
私も同じような問題があり、最終的にドロップダウンの値を選択するヘルパー関数を書きました。
私は最終的にオプション番号で選択しても問題ないと判断し、要素とoptionNumberを受け取り、そのoptionNumberを選択するメソッドを書きました。 optionNumberがNULLの場合は何も選択されません(ドロップダウンは未選択のまま)。
var selectDropdownbyNum = function ( element, optionNum ) {
if (optionNum){
var options = element.all(by.tagName('option'))
.then(function(options){
options[optionNum].click();
});
}
};
もっと詳しく知りたい方はブログ記事を書きました。ドロップダウンで選択されたオプションのテキストを検証することもカバーしています。 http://technpol.wordpress.com/2013/12/01/protractor-and-dropdowns-validation/
関連
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
-
[解決済み] これは純関数ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?