2017-08-01 15 views
-2

これは、ソースコードである:Seleniumでドロップダウンから値を選択する方法は?

<select name="backgroundcolor" onchange="backgroundColor();"> 
    <option value="200">Red</option> 
    ....  
</select> 

私は「赤」オプションを選択するために、コードの下にしようとしたが、それは動作しませんでした。

Select dropDown = new Select(driver.findElement(By.name("backgroundcolor"))); 
dropDown.selectByValue("200"); 

私は例外NoSuchElementException取得しています

+0

[webdriver.io](http://webdriver.io)を使用していますか? – Cristy

+0

いいえ、FirefoxDriverです。 – gingerdd

+1

[Webdriver - 要素を見つけることができません(Java)](https://stackoverflow.com/questions/39373814/webdriver-unable-to-locate-element-java)の可能な複製 –

答えて

0

この

Select select = new Select(driver.findElement(By.name("backgroundcolor"))); 
select.deselectAll(); 
select.selectByVisibleText("Red"); 

を多分試みる要素// * [名= '背景色']を見つけることができませんBy.nameは問題ですが、私は次のようなものを使用することに慣れています:

By.xpath("//path_to_drop_down")) 
0

これを試してみてください、あなたはあなたが、それはおそらくタイミングの問題だということに注意してください

from selenium.webdriver.support.select import Select as WebDriverSelect 
element = WebDriverSelect(driver.find_element_by_name('backgroundcolor')) 
element.select_by_value('200') 
0

を使用している言語に以下のコードを変換する必要があります。その場合は、要素がページに表示されるまで待つ必要があります。これを試してみてください:

By locator = By.name("backgroundcolor"); 
WebDriverWait wait = new WebDriverWait(driver, 30); 
wait.until(ExpectedConditions.presenceOfElementLocated(locator)); 
Select dropDown = new Select(driver.findElement(locator)); 
dropDown.selectByValue("200"); 
0

私が得た「*要素を見つけることができません[名前= 『背景色』]」まず私がすることによってタイミングの問題がdropdown.Itだことを含んはiframeに到達しようとすると、error.Iは、その問題を解決道。

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(theindexofframe)); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("backgroundcolor"))); 

あなたは、あなたがこのようにドロップダウンリストから値を選択することができることalso.Afterロードする「背景色」の要素を待つ必要があり、その後、ロードするのiframeのを待つ必要があります。

Select dropDown = new Select(driver.findElement(By.name("backgroundcolor"))); 
dropDown.selectByValue("200"); 
関連する問題