Seleniumは、さまざまなブラウザやオペレーティングシステムで実行できるWebアプリケーションをテストするためのオープンソースおよびポータブル自動化されたソフトウェアテストツールです。 Seleniumは実際には単一のツールではなく、テスターがアプリケーションをより効果的に自動化するのに役立つツールのセットです。
時々、<select> </select>タグのドロップダウンボックスに遭遇します。ドロップダウンボックスのオプションをクリックするだけでは、必ずしも実行可能ではありません。 Seleniumは、ドロップダウンボックスを処理するための選択クラスを特に提供します。
<選択id = "status" onchange = "" name = "status"> <option value = "" "> </option> <option値> <option値> <option値> <option値> <" 0 ">レビュー</option> <option value =" 1 ">予備レビュー</option> <option value =" 2 ">レビュー渡されます</option> <option値=" 3 "
Python-Seleniumでの操作
Pythonを例として、Selenium code select.pyファイルの実装を表示する例として使用します。
.../selenium/webdriver/support/select.py
クラス選択:
def __init __(self、wewebrem): ""コンストラクター。指定された要素が実際に選択されたタグであることをチェックします。そうでない場合は、予期しないtagnameExceptionがスローされます。:args: - wewebrem -wewebrem -rement selece relect of wrapexample:from selenium.webdriver.support.uiインポートSelect( "select":reasing regineedtagnameexception( "select <select>要素でのみ動作します。
Selectクラスの実装を表示するには、要素を見つける必要があります。例の例は例に示されています。
select(driver.find_element_by_tag_name( "select"))。select_by_index(2)def select_by_index(self、index): ""指定されたインデックスでオプションを選択します。これは、単にカウントではなく、要素の「インデックス」属性を調べることによって行われます。:args :-インデックス - このインデックスのオプションは選択されます "" "match = str(index)matched = false opt in self.options:if opt.get_attribute(" index ")== match:self.is_matched:rictrumed not not not matched(opt) nosuchelementexception( "index%dで要素を見つけることができませんでした"%index)
select_by_index()メソッドの使用を継続して、ドロップダウンボックスのオプションにはindex =” 1”などのインデックス属性が必要である必要があるため、上記のドロップダウンボックスの要件を満たし続けます。
def select_by_value(self、value): "" "引数に一致する値を持つすべてのオプションを選択します。つまり、「foo」が与えられた場合、これは次のようなオプションを選択します。 self._el.find_elements(by.css_selector、css)一致= opts:self._setselected(opt)self.is_multiple:returnmatched = trueif not matched:raise nosuchelementexception( "nosuchelementexception(" value:s "%s"%value)を見つけることはできません)
select_by_value()メソッドが要件を満たしていることを確認し続けます。これは、<option>タグの値値を選択するために使用されます。最後に、次のオプションを使用して、ドロップダウンボックスを選択できます。
selenium.webdriver.support.select import selectから
...
sel = driver.find_element_by_xpath( "// select [@id = 'status']")
select(sel).select_by_value( '0')#notレビュー
select(sel).select_by_value( '1')#preliminaryレビュー
select(sel).select_by_value( '2')#reviewパス
select(sel).select_by_value( '3')#レビューが失敗しました
Java-Seleniumでの運用
もちろん、Javaの使用も同様です。唯一の違いは構文レベルです。
パッケージcom.jase.base;
org.openqa.selenium.webdriverをインポートします。
org.openqa.selenium.by.byidをインポートします。
org.openqa.selenium.chrome.chromedriverをインポートします。
org.openqa.selenium.support.ui.select;
パブリッククラスSelectTest {
public static void main(string [] args){
WebDriver Driver = new ChromeDriver();
driver.get( "http://www.you_url.com");
//…
select sel = new select(driver.findelement(byid.xpath( "// select [@id = 'status']")));
SEL.SELECTBYVALUE( "0"); //レビューされていません
SEL.SELECTBYVALUE( "1"); //予備レビューが合格しました
SEL.SELECTBYVALUE( "2"); //渡されたレビュー
SEL.SELECTBYVALUE( "3"); //レビューは合格しません
}
}