2016-08-24 128 views
4

我想從2個Ajax下拉字段中選擇特定值。第一個下拉選項列表變得打開但不選擇選項,這就是爲什麼第二個下拉列表不具有約束力併發生誤差作爲無法使用硒webdriver選擇ajax下拉值

org.openqa.selenium.NoSuchElementException:無法找到元素: 選項[值= 「111」]。

請幫助我..我對硒

這裏是我的代碼的新..

Code

HTML塊:

HTML block

+0

什麼是你嘗試使用selectByVisibleText時得到的錯誤? –

+0

嗨Swa,歡迎來到Stack Overflow。而不是將你的html代碼和webdriver代碼作爲屏幕截圖發佈,如果你使用markdown將代碼粘貼到相關的代碼中,你的問題會更好。 –

+0

@swa,因爲您已經解決了這個問題,請將其添加爲解決方案並將其標記爲答案。它將幫助其他用戶對其進行調試。對於您在環境中使用的版本也添加更多的說明。 :) – jit

回答

2

由於Firefox瀏覽器(版本45)兼容性問題而發生此問題。 我使用硒3.0.0-beta2和測試對Firefox 45.0.2

當試圖geckodriver(版本0.10.0)的OS窗口10 -64位,似乎有些不起作用。 它只適用於Firefox 48或以上版本。 它成功地在chromedriver上工作

0

你可以試試一個更具體的方式來與硒中的下拉菜單進行交互。 嘗試是這樣的:

Select dropdown = new Select(driver.findElement(By.id("cmbJob"))); 
dropdown.selectByValue("111"); 

你甚至可以定義一個函數與dropdwns工作:

protected void chooseOptionInSelectByValue(String selectId, String valueString) { 
    Select dropdown = new Select(driver.findElement(By.id(selectId))); 
    dropdown.selectByValue(valueString); 
} 

所以,你可以使用函數這樣

chooseOptionInSelectByValue("cmbJob","111"); 

硒下拉對象有許多其他選項,如selectByText等。請在此處查看API:https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/Select.html

+0

嘗試以上的解決方案。和selectByVisibleText,通過使用Xpath也是同樣的錯誤發生...請建議我 – Swa

+0

@裏卡多..謝謝你這麼多的回覆.. 有一個隱藏的div在'第一次下拉'div。由於隱藏的div,是否有任何問題? – Swa

+0

@Swa這不應該是一個問題。但檢查你的HTML,因爲我可以看到兩個選擇與名稱=「cmbJob」。您可以檢查新的Select(driver.findElement(By.id(selectId)))是否找到右下拉列印到日誌或system.out其元素的'dropdown.getOptions()'。請參閱https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/Select.html#getOptions-- –

相關問題