web-dev-qa-db-ja.com

JavaでSelenium WebDriverを使用してドロップダウンリストから項目を選択する方法

JavaでSelenium WebDriverを使用して、性別(男性、女性など)のようなドロップダウンリストから項目を選択するにはどうすればよいですか?

私はこれを試しました

WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("Male"));
for (WebElement option : options) {
    if("Germany".equals(option.getText()))
        option.click();   
}

上記のコードは機能しませんでした。

39
user1754106

つかいます -

new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany");

もちろん、import org.openqa.Selenium.support.ui.Select;が必要です

42
some_other_guy

以下に示すように、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");

ハッピーコーディング:)

21
Abhishek Singh

あなたがその「オプション」のように言及すべきタグ名、スペースを含むテキストがこのメソッドを使用できる場合、それは動作するはずです。

WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));

for (WebElement option : options) {

if("Germany".equals(option.getText().trim()))

 option.click();   
}
5
Sathish

Maitreyaが投稿したSelenium WebDriverの「Select」クラスを使用できます。申し訳ありませんが、文字列を「ドイツ」と比較する理由をドロップダウンから性別を選択したことについて少し混乱しています。コードスニペットは次のとおりです。

Select gender = new Select(driver.findElement(By.id("gender")));
gender.selectByVisibleText("Male/Female");

上記のコードを追加した後、import org.openqa.Selenium.support.ui.Select;をインポートします。これで、あなたが与えた性別(男性/女性)が選択されます。

3
Deepu

Googleの「項目Selenium Webdriverを選択」が表示されます RubyでSelenium WebDriver(Selenium 2.0)クライアントを使用して選択されたオプションを設定するにはどうすればよいですか 最初の結果として。これはJavaではありませんが、あまり手間をかけずに翻訳できるはずです。 https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriver が上部にあります5、ここでもJavaではありませんが、APIは非常に似ています。

3
Mene
WebElement selectgender = driver.findElement(By.id("gender"));
selectgender.sendKeys("Male");
3
Anand Somani
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));
for (WebElement option : options) {
   if("Germany".equals(option.getText()))
       option.click();   
}
1
Anand Somani

特定のドロップダウンボックス要素を見つけるには:

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

ドロップダウンボックスに含まれるすべての要素のリストを取得するには:

for(int j=1;j<3;j++)
    System.out.println(gender.getOptions().get(j).getText());

クリックして表示されるテキストから選択するには:

gender.selectByVisibleText("Male");

インデックスで選択するには(0から開始):

gender.selectByIndex(1);
1
Rishi369
public class checkBoxSel {

    public static void main(String[] args) {

         WebDriver driver = new FirefoxDriver();
         EventFiringWebDriver dr = null ;


         dr = new EventFiringWebDriver(driver);
         dr.get("http://www.google.co.in/");

         dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

         dr.findElement(By.linkText("Gmail")).click() ;

         Select sel = new Select(driver.findElement(By.tagName("select")));
         sel.selectByValue("fil");

    }

}

GOOGLE LOGIN PAGEを使用して、選択オプションをテストしています。上記の例は、ドロップダウンリストから言語「フィリピン」を見つけて選択することでした。これで問題が解決すると確信しています。

0
MKod