«UnexpectedTagNameException» и «Элемент» должны были быть выбраны, но возникла ошибка div с использованием функции «Выбрать» через Selenium java

В этой форме выбор выпадающего списка не работает.

Это изображение

На изображении выше я хочу выбрать «Потенциал заимствования».

и я пишу код для него

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

Это дает мне исключение

«Неожиданное исключение имени тега»

и сообщение об ошибке

Элемент должен был быть "выбрать", но был "div"

HTML-теги


person Pradnya Bolli    schedule 03.04.2019    source источник
comment
Зачем использовать длинный xpath, если элемент имеет определенный идентификатор?   -  person entropy    schedule 03.04.2019
comment
Select cal = new Select(selectMyElement);, но до этого selectMyElement это div -> driver.findElement(By.xpath(".../div[2]/div[1]"));   -  person KunLun    schedule 03.04.2019


Ответы (1)


Это сообщение об ошибке...

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

... подразумевает, что вы использовали класс Select для взаимодействия с элементом, где элемент был <div>.

Чтобы click() в элементе с текстом Емкость заимствования вы можете использовать следующий Стратегия поиска:

  • 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();
    
  • Снимок браузера:

Заемные возможности

person DebanjanB    schedule 03.04.2019