1

id="product-size" のドロップ リストと、S、M、L、XL のアイテムがあります。

<select id="product-size" onchange=" addToWishList();">
 <option>Select</option>
 <option id="2119362" value="4">S</option>
 <option id="2119363" value="7">M</option>
 <option id="2119364" value="8">L</option>
 <option id="2119365" value="4">XL</option>
</select>

これらのアイテムを格納するために配列を使用しましたが、実行時に最初の要素 'S' にアクセスする必要があります。私が直面している問題は、実行時に最初の要素 S をクリックできなかったことです。私は次のようにコードを書きました:

driver.get("https://m.staging.karmaloop.com/product/The-Infinity-Tee/407819");
WebElement j =driver.findElement(By.id("product-size"));
String text = j.getText(); 
String[] DDLcount =text.split("\n");
for (int i=1;i<=DDLcount.length-1;i++)
    {       
    driver.findElement(By.xpath(Testconfiguration.size_dropdown_10deep)).click();
    Thread.sleep(5000);
    driver.findElement(By.name(DDLcount[i])).click(); 
    }

この問題を解決するのを手伝ってくれる人はいますか?

4

3 に答える 3

3

提供したコードから、オプションに無効なセレクターを使用しています。

name彼らは属性を持っていないようです

ループを変更する以外に、DOM が再構築されていない場合は、操作を高速化できます。

WebElement selectBox = driver.findElement(By.xpath(Testconfiguration.size_dropdown_10deep));
List<WebElement> options = selectBox.findElements(By.tagName("option"));
for ( WebElement option : options )
{      
    selectBox.click();
    option.click();
}
于 2013-07-29T07:41:31.857 に答える
0
By locator = By.id("product-size");
Select select = new Select(webdriver.findElement(locator));

次の 3 つのオプションのいずれかを使用して、ドロップダウンからアイテムを選択できます。

select.selectByIndex(index); // Give Index as parameter
select.selectByValue(value); // Give the value of the option tag 
select.selectByVisibleText(value); // Give the visible text as parameter
于 2013-07-29T08:32:05.063 に答える