2013-09-22 45 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"); 
相关问题