Selenium WebDriver Firefox Java - 无法选择选项

时间:2011-07-06 12:02:52

标签: java selenium option webdriver

我有一个非常奇怪的问题。使用selenium我正在编写简单的web-bot tring以填充页面数据,提交theam并收集结果。

我填写所有表格都没有任何问题,但我必须首先输入邮政编码,而不是点击其他地方为AJAX列出所有可能性,而不是选择propriate选项(我想总是选择第一个)。

但我的问题是,我根本无法选择它。我填写ZIP,单击选项列表本身,等待“请选择”消息丢失(此时我的选择应该在那里)而不是选择它。我尝试了option.click(),我尝试了selectByVisibleText(),甚至弃用了setSelected()。每次都没有发生。我在FF中看到的只是下拉列表中的选项,标记为第一个,但这就是全部。我尝试了很多方法,根本没有运气。

我的最后一次尝试代码:

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();

4 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,使用Actions类获得了更好的结果,然后确保在点击之前使用moveToElement()方法。

Actions builder = new Actions(d);


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

moveToElement方法确保元素在可见窗口中

答案 1 :(得分:0)

试试这个

if(!w.getText()。equals(“Prosím,vyberte。”)){ 返回true; }

答案 2 :(得分:0)

请查看this主题...

答案 3 :(得分:0)

使用键盘键我们可以在selenium webdriver .Code中解决这个问题,例如上面的例子,ZIPCode.sendkeys(ZIP); ZIPCode.sendkeys(Keys.Tab); ZIPCode.sendkeys(Keys.Return);