2011-07-06 48 views
1

我有很奇怪的問題。使用硒我正在寫簡單的網絡機器人填充數據頁面,提交上午和收穫結果。Selenium WebDriver Firefox Java - 無法選擇選項

我填寫所有表格都沒有問題,但是我必須先輸入郵政編碼,而不是點擊AJAX的其他地方列出所有的posibilities,然後選擇propriate選項(我希望始終選擇第一個一)。

但我的問題是,我根本無法選擇它。我填寫ZIP,點擊選項列表本身,等待「請選擇」消息丟失(此時我的選擇應該在那裏),而不是選擇它。我試過option.click(),我試過selectByVisibleText(),甚至棄用setSelected()。每次沒有任何反應。我在FF中看到的所有選項都是下拉列表,第一個標記是beeing,但這就是全部。我嘗試了很多方法,根本沒有運氣。

還有就是我最後的嘗試代碼:

ZIPCode = driver.findElement(By.id("formparam_data2_zip")); //get and fill ZIP 
ZIPCode.sendKeys(ZIP); 
address = driver.findElement(By.name("formparam_data2_zip_id")); // click to fire AJAX 
address.click(); 
(new WebDriverWait(driver, 20)).until(new ExpectedCondition<Boolean>() { 
public Boolean apply(WebDriver d) {     // wait until AJAX shows results 
WebElement elm = d.findElement(By.id("formparam_data2_zip_id")); 
List<WebElement> options = elm.findElements(By.tagName("option")); 
for(WebElement w : options){ 
if(w.getText() != "Prosím, vyberte."){ 
return true; 
}} 
return false; 
}}); 
List<WebElement> options = address.findElements(By.tagName("option")); 
options.get(0).click(); // click first option - ! this failes ! 
phaseTwoBtn = driver.findElement(By.id("formparam_data2_next")); // than submit... 
phaseTwoBtn.submit(); 

回答

0

請看看this線程...

+0

謝謝,但我能得到的所有選項值,甚至將它們標記,所有我can' t do實際上是選擇他們成爲選擇的選項... –

0

試試這個

如果{ 迴歸真實;(w.getText()equals()方法! 「PROSIM,vyberte。」) }

+0

謝謝,但沒有改變... –

0

使用鍵盤的鍵就可以解決的硒這個問題。代碼的webdriver在上面的例子中,ZIPCode.sendkeys(ZIP); ZIPCode.sendkeys( Keys.Tab); ZIPCode.sendkeys(Keys.Return);

1

我有一個類似的問題,使用Actions類有更好的結果,然後確保在點擊它之前使用moveToElement()方法。

Actions builder = new Actions(d); 


builder.moveToElement(options.get(0))); 
builder.click(); 
builder.build().perform(); 

的moveToElement方法確保該元素是在可視窗口

相關問題