'UnexpectedTagNameException' and Element should have been “select” but was “div” error using 'Select' function through Selenium java

谁都会走 提交于 2019-12-17 07:50:52

问题


In this form selection of drop down is not working.

In above image I want to select 'Borrowing Capacity'

and I write code for it

    public static void main(String[] args) throws InterruptedException 
    {
    WebDriver driver =new ChromeDriver();
    //driver.manage().window().maximize();
    driver.get("http://www.ia.ca/");
    Thread.sleep(3000);
    driver.findElement(By.xpath("//*[@id=\"nav-secondaire\"]/div[1]/ul/li[4]/a")).click();
    driver.findElement(By.xpath("//*[@id=\"nav-secondaire\"]/div[1]/ul/li[4]/ul/li[1]/section/ul/li[1]/a")).click();

   //DropDown code
    WebElement selectMyElement =driver.findElement(By.xpath("//*[@id=\"grille-zone-cta\"]/div/div/div/div/div/div[2]/div[1]"));
    Select cal = new Select(selectMyElement);
    cal.selectByIndex(1);

It gives me exception

'UnexpectedTagNameException'

and error message is

Element should have been "select" but was "div"


回答1:


This error message...

'UnexpectedTagNameException' : Element should have been "select" but was "div"

...implies that you have used Select class to interact with the element where as the element was a <div>.

To click() on the element with text as Borrowing Capacity you can use the following Locator Strategy:

  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//h4[@class='bta-description' and text()='Our calculators']//following::div[@class='bta-select-table row']//b[@class='button']"))).click();
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='selectric-items']//li[contains(., 'Borrowing Capacity')]"))).click();
    
  • Browser Snapshot:



来源:https://stackoverflow.com/questions/55496154/unexpectedtagnameexception-and-element-should-have-been-select-but-was-div

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!