Я пытаюсь нажать кнопку раскрывающегося списка, код успешно запущен, но кнопка раскрывающегося списка не была нажата в селене.
<select id = "comp_drpdwn" data-select-id = "f41d68e6-38b3-19cc-c392-3c9fc33690e8" class = "initialized">
<option value = "0">Select Company</option>
<option value = "Acme~54sc234xb">Acme</option>
<option value = "Acme Bar & Grill~TI17267302">Acme Bar & Grill</option>
<option value = "Ball & Chain~TI58377308">Ball & Chain</option>мой код:
WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();
Можете ли вы поделиться URL-адресом веб-приложения?
@Buaban, как я могу поделиться URL-адресом и учетными данными?
@Saravanan просто добавьте их в свой вопрос. если это проприетарное программное обеспечение, вы можете поделиться большим количеством HTML. Я думаю, это не простой элемент выбора.




Это выбранный тег. Вы можете использовать Select класс селена.
Например, чтобы выбрать опцию Acme, попробуйте следующий код.
WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']"));
Select sel = new Select(element);
sel.selectByVisibleText("Acme");
Я пытаюсь выполнить приведенный выше код, но отображается ошибка, например: org.openqa.selenium.ElementNotVisibleException: элемент не отображается: элемент в настоящее время не отображается и не может быть изменен (Информация о сеансе: chrome = 67.0.3396.62) (Информация о драйвере: chromedriver = 2.39 .562718
Возможно, вам придется дождаться видимости элемента.
При наведении указателя мыши на элемент отображается HTML-код: <input type = "text" class = "select-dropdown" readonly = "true" data-activates = "select-options-f41d68e6-38b3-19cc-c392-3c9fc 33690e8 "value = " R3PORTS, INC ">
это мой последний код: WebDriverWait wait = new WebDriverWait (driver, 10); WebElement element = wait.until (ExpectedConditions.visibilityOfElementLocated (By. xpath ("// input [@ value = 'R3PORTS, INC']"))); WebElement element1234 = driver.findElement (By.xpath ("// input [@ value = 'R3PORTS, INC']")); element1234.click ();
отображается ошибка: отображается ошибка: org.openqa.selenium.WebDriverException: неизвестная ошибка: элемент <input type = "text" class = "select-dropdown" readonly = "true" data-activates = "select-options-47eb660d- 70d8-548b-7bfc-7d3d6 1d319b2 "value = " R3PORTS, INC "> не активен в точке (223, 28). Другой элемент получит щелчок:
Это должно работать:
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='comp_drpdwn']")));
Select select = new Select(element);
select.selectByVisibleText("Acme");
Подход @Murthi был в значительной степени правильным. Поскольку этот элемент является элементом <select>, вы должны использовать экземпляр класса Select. Но похоже, что свойство значение и VisibleText тегов option содержит динамический текст (например, ~54sc234xb) и специальные символы (например, &). Поэтому я хотел бы использовать метод selectByIndex(int index) следующим образом:
WebElement elem = driver.findElement(By.xpath("//select[@class='initialized' and @id='comp_drpdwn'][@data-select-id]"));
Select select = new Select(elem);
select.selectByIndex(1);
В приведенном выше коде отображается ошибка, например: org.openqa.selenium.ElementNotVisibleException: элемент не отображается: элемент в настоящее время не отображается и не может быть изменен
@Saravanan Можете ли вы обновить вопрос, добавив немного внешнего HTML-кода выбранного узла?
Как насчет предоставления контекста? Не зная структуры веб-страницы, никто не может сказать, имеет ли ваш xpath смысл или нет.