2016-10-31 2 views
0

私がテストするWebサイトは、ドロップダウンリストと入力フィールドにSelect2プラグインを使用します。私は手動で初期フィールドのクリックとsendkeys関数をコード化することができますが、ドロップダウンは私を台無しにしてしまいます。私はドロップダウン項目を選択できますが、Selenium IDEが迅速なテストのために受け入れる一意の識別子ではありません。Firepathを使用してSelenium用の許容可能なXPathまたはCSSセレクタを収集し、Select2からFireBugを作成します。

どのようにしてドロップダウンオプションを選択できますか?

<div id="select2-drop-mask" class="select2-drop-mask" style="display: block;"/> 
<div id="select2-drop" class="select2-drop select2-display-none select2-drop-active select2-drop-above" style="left: 1015.5px; width: 438px; top: auto; bottom: -229px; display: block;"> 
<div class="select2-search select2-search-hidden select2-offscreen"> 
<span class="fa fa-search select2-search-placeholder"/> 
<input class="select2-input" type="text" placeholder="Search" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/> 
</div> 
<ul class="select2-results"> 
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted"> 
<div class="select2-result-label"> 
</li> 
<li class="select2-results-dept-0 select2-result select2-result-selectable"> 
<div class="select2-result-label"> 
<span class="select2-match"/> 
Fraudulent Account (ID Theft) 
</div> 
</li> 

さらに多くの項目がありますが、このコードの対象者についてはあまり知らせたくありません。テストコードはウェブサイトの新しい修正を簡単に受け入れることができる必要があるため、数値配列セレクタを使用しないことをお勧めします。

答えて

0

あなたはそれによって要素を一致させることができますXPathと次のようにテキスト値です:

//li[normalize-space(.)="Fraudulent Account (ID Theft)"] 
0

あなたはまた、彼らが来るために一致させることができます(1がベストマッチです)

By.cssSelector("ul.select2-results li.select2-result:nth-of-type(N)") 

By.xpath("//ul[contains(@class, 'select2-results')]/li[contains(@class, 'select2-result')][N]") 

どこN n番目の結果です。

+0

これはほとんどの状況で機能しますが、今後はリストに追加する必要があります。これらの項目は、リストの順序を乱してしまい、フローの仕組みによって、どの要素が選択されているかを知る必要があります。それ以外の場合は、テストに失敗します。この1つのコードは、約15のテストケースで使用されます。後でそれを是正することは、コードのすべてのテストケースのバージョンを編集することを意味するでしょう。 –

+0

これは単なる代替手段です:) – sircapsalot

関連する問題