2011-07-06 3 views
1

나는 이상한 문제가 있습니다. 셀레늄을 사용하여 데이터로 페이지를 채우고 theam 및 수확 결과를 제출하는 간단한 웹 보 트리 작성.Selenium WebDriver Firefox Java - 옵션을 선택할 수 없습니다.

모든 양식을 전혀 채우지 않지만, 우선 우편 번호를 입력해야합니다. AJAX가 모든 가능성을 나열하는 대신 고유 옵션을 선택하십시오 (항상 첫 번째를 선택하고 싶습니다. 하나).

하지만 내 문제는 단순히 선택할 수 없다는 것입니다. 필자는 우편 번호를 채우고 옵션 목록 자체를 클릭 한 다음 "선택하십시오"라는 메시지가 나타나면 길을 잃고 (이 시간까지는 내 선택이 있어야 함) 기다리십시오. 나는 option.click()을 시도하고, selectByVisibleText(), 심지어 deprecated 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', 그들도 모든 옵션 값을 얻을 수 있어요 표시 실제로 선택 옵션이되도록 선택하고 있습니다 ... –

0

경우 시도 사실 { 반환;

이 내 마지막 시도 코드입니다 (!. w.getText() 등호() "Prosím, vyberte.") 우리는 셀레늄이 문제를 해결할 수있는 키 보드 키를 사용하여 }

+0

감사하지만 변화 ... –

0

위의 예, ZIPCode.sendkeys (ZIP)에 대한 webdriver .CODE, ZIPCode.sendkeys (Keys.Tab); ZIPCode.sendkeys (Keys.Return);

1

비슷한 문제가있어서 더 나은 결과가 Action 클래스를 사용하고 나서 moveToElement() 메서드를 클릭하기 전에 사용해야합니다.

Actions builder = new Actions(d); 


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

moveToElement 방법은 요소가

관련 문제