web-dev-qa-db-ja.com

Javaを使用してSelenium WebDriverでドロップダウン値を選択する方法

seleniumが初めてで、現在Selenium Webdriverに取り組んでいます。ドロップダウンから値を選択します。 id = periodIdおよびオプションは、過去52週間を選択しようとしています。

Htmlタグは次のとおりです。

<select id="periodId" name="period" style="display: none;">
    <option value="l4w">Last 4 Weeks</option>
    <option value="l52w">Last 52 Weeks</option>
    <option value="daterange">Date Range</option>
    <option value="weekrange">Week Range</option>
    <option selected="" value="monthrange">Month Range</option>
    <option value="yeartodate">Year To Date</option>
</select>

ドロップダウンをクリックする方法をいくつか教えてください。

上記の例の行で試してみましたが、要素が現在表示されていないなどのエラーが発生しているため、コマンドの継続時間やタイムアウトとやり取りできない可能性があります:32ミリ秒のドロップダウン値はjquery multiselectウィジェット形式です

44
Amirdha

以下に示すように、WebElementをSelect Objectにラップするだけです

Select dropdown = new Select(driver.findElement(By.id("identifier")));

これが完了したら、3つの方法で必要な値を選択できます。このようなHTMLファイルを考えます

<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>

今ドロップダウンを識別するために

Select dropdown = new Select(driver.findElement(By.id("designation")));

そのオプションを選択するには、「プログラマー」と言います

dropdown.selectByVisibleText("Programmer ");

または

dropdown.selectByIndex(1);

または

 dropdown.selectByValue("prog");
103
Abhishek Singh

すべてを1行で書きたい場合は、

new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer ");
5
SamK

上記で説明したように、SeleniumでSelect Classを実装する必要があり、さらに次のようなさまざまな利用可能なメソッドを使用できます。 enter image description here

4
AugustRush

実際、selectは選択しますが、選択した値をそれぞれのフィールドに配置しません。以下のスニペットが完璧に機能するのか疑問に思ったところ

driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");
3
user5027588

ドロップダウンを選択するコード xpathを使用

Select select = new 
Select(driver.findElement(By.xpath("//select[@id='periodId']));

特定のオプションを選択するコード selectByVisibleTextを使用

select.selectByVisibleText(Last 52 Weeks);
0
Mohan Kumar Dg

次のメソッドを使用して、Seleniumでドロップダウンを処理できます。

  1. driver.selectByVisibleText( "Text");
  2. driver.selectByIndex(1);
  3. driver.selectByValue( "prog");

詳細については、 http://www.codealumni.com/handle-drop-Selenium-webdriver/ この投稿を参照してください。

クエリを解決する上で非常に役立ちます。

0
Jayant Gupta