0

以下のウェブサイトのドロップダウンを自動化しようとしています:

https://qa.roofandfloor.com/

都市セクションには、バンガロールとチェンナイの両方があり、バンガロールが自動選択されると仮定すると、以下のコードを実行すると失敗します。

WebElement element=driver.findElement(By.xpath("//select[@class='city-dropdown-search form-city hide select2-offscreen']"));
    Select se=new Select(element);
    se.selectByIndex(2);

2 番目の都市を認識できません。ここで何が間違っているのか教えてください。

htmlタグは以下の通りです。

<select id="combobox2" class="city-dropdown-search form-city hide select2-  offscreen" name="city" tabindex="-1">
 <option value="Chennai">Chennai</option>
<option selected="" value="Bangalore">Bangalore</option>
</select>

xpathに問題がありますか、それともここに欠けている何かがありますか

4

3 に答える 3

0

@Arun Guptaコードを汎用的にするには、都市名をハードコーディングする代わりに、次のことができます

  1. 都市名の配列を作成し、それを cityName 変数に渡します

  2. 都市名をExcelファイルまたはテキストファイルに保存し、各都市を読み取り、それをcityName変数に渡します

1の例

String[] cityName = {"bangalore", "chennai", "pune"};

for(String name : cityName) {
WebElement toElement = driver.findElement(By.id("s2id_combobox2"));
toElement.click();
driver.findElement(By.id("select2-drop")).sendKeys(cityName);
}

それが役に立てば幸い

于 2015-06-03T18:22:24.507 に答える
0

次のように、xpath でプロパティを使用text()して、text() で「Chennai」オプションを選択できます。

//a/span[text() = 'Chennai']

//click on the drop down
WebElement dropDown = driver.findElement(By.xpath("//*[@id='s2id_combobox2']/a/span[@class='select2-arrow']"));
dropDown.click();

//Select the dropdown value
WebElement select = driver.findElement(By.xpath("//a/span[text() = 'Chennai']"));
select.click();
于 2015-06-02T09:28:53.053 に答える
0

実際には、以下のように入力できますsendKeys()

WebElement toElement = driver.findElement(By.id("s2id_combobox2"));
toElement.click();
driver.findElement(By.id("select2-drop")).sendKeys("Bangalore");

ここで、値を変更するだけで、より多くの都市がある場合に渡すことができますsendKeys()

于 2015-06-02T12:35:43.933 に答える