2013-09-22 63 views
0

我想從下拉列表中選擇元素,但是在他們使用的html中,它們使用<img>標記。我怎樣才能實現我的目標?使用硒web驅動程序從下拉列表中選擇元素

這是我的代碼的東西:

public void country() { 
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    Select country1 = new Select(country); 
    country1.selectByVisibleText("Canada"); 
} 

運行TestNG的測試,而我得到這個錯誤

org.openqa.selenium.support.ui.UnexpectedTagNameException:元素應該是「選擇」但 「IMG」

+1

顯示HTML請。要麼你的定位器錯了,要麼你的選擇實際上不是一個選擇元素。 –

+0

執行選項指出下拉列表的標記不是選擇,而是圖像。元素被錯誤地識別,或者您需要更改選擇模式。選擇方法只有在標籤被選中時才起作用。請分享html。會幫助你。 – Vinay

+0

你是正確的vinay他們已經使用圖像標記,當我試圖選擇使用Select類的列表,它給了我錯誤 – pkhauzhal

回答

0

使用下面的代碼:

List<WebElement> lstOptions=Country1.getoptions(); 
for(WebElement lstOption:lstOptions){ 
if(lstOption.gettext().tolowercase().equals("canada")) 
lstOption.click(); 
} 
+0

我認爲你是誤解了這個問題。問題的根源在於用戶所引用的元素不是'select'元素。所以定位器是錯誤的,或者下拉菜單不是'select',而是以使其看起來像'select'/ dropdown的方式設置。 – Arran

1

如何查找下拉列表值..... 使用此代碼肯定它的幫助你!

driver.findElement(By.xpath("ur xpath")).click(); 

new Select(driver.findElement(By.name("EventType"))).selectByVisibleText("Birthday"); 

new Select(driver.findElement(By.id("city"))).selectByValue("Op3"); 
相關問題