В моем коде есть 2 раскрывающихся списка на 2 разных страницах, и у них у обоих одинаковый идентификатор "рождение-нация". Я могу выполнять действия, используя этот идентификатор, но когда он переходит на второй, я получаю сообщение об ошибке, что элемент не отображается.
Вот мой код:
Select dropdown1111111 = new Select(driver.findElement(By.id("birth-nation")));
dropdown1111111.selectByVisibleText("UNITED STATES");
Select dropdown1111111 = new Select(driver.findElement(By.id("birth-nation")));
dropdown1111111.selectByVisibleText("UNITED STATES");
Идентификатор для обоих одинаковый, и я не могу выполнять действия в раскрывающемся списке 2.
HTML-файл ниже. для 1 элемента:
<select required = "" name = "birthNation" id = "birth-nation" class = "formcontrol input-sm sync valid" data-sync-to-element = "#personal-info-view-birth_nation-243202808" aria-invalid = "false">
для 2-х элементов:
<select required = "" name = "birthNation" id = "birth-nation" class = "form-control input-sm sync" data-sync-to-element = "#personal-info-view-birth_nation-243202809">
если вы заглянете в инструменты разработчика своего браузера (f12 в хроме), вы увидите элемент дважды на вкладке элементов? Вы можете попробовать выбрать его с помощью соответствующего xPath
@SE Боже, я думаю, он имел в виду, что одно и то же раскрывающееся меню присутствует на двух разных страницах.
Да, оба они представлены на двух разных страницах.
для 1 элемента: <select required = "" name = "BirthNation" id = "Birth-nation" class = "form-control input-sm sync valid" data-sync-to-element = "# personal-info-view- Birth_nation-24320 2808 "aria-invalid = " false "> для 2 элементов: <select required = " "name = " BirthNation "id = " Birth-nation "class = " form-control input-sm sync "data-sync -to-element = "# personal-info-view-Birth_nation-24320 2809">
Идентификатор одинаков для обоих и класса, единственная разница - это числовое значение, я не знаю, как я могу использовать эту разницу, чтобы выбрать два раскрывающихся списка. помощь
Размещение ссылки на страницу будет самым быстрым способом получить ответ. Что нужно сделать для второй страницы, чтобы раскрывающийся список стал видимым? Вы пробовали подождать? Как узнать, что вы нашли нужный элемент?
@JeffC Я проверил элемент, а также попробовал отображается, поэтому я уверен, что нахожу нужный элемент
возможная дублирующаяся проблема с stackoverflow.com/questions/50618697/…




Вы можете использовать ниже CSS Selector, так как только разница в вашем атрибуте находится на # personal-info-view-Birth_nation
select[id = "birth-nation"][data-sync-to-element = "#personal-info-view-birth_nation-243202808"]
select[id = "birth-nation"][data-sync-to-element = "#personal-info-view-birth_nation-243202809"]
вы хотите использовать его как Select dropdown1111111 = new Select (driver.findElement (By.cssSelector ("# personal-info-vie w-Birth_nation-24320 2808"))); верно?
В своем ответе я указал селектор CSS, вы должны его использовать.
Теперь он работает хорошо, спасибо, приятель, но есть блок электронной почты, где я должен ввести адрес электронной почты, и он не работает, вот код для этого driver.findElement (By.cssSelector ("select [id = \" email- адрес \ "] [данные-синхронизация-to-element = \" # личная-информация-просмотр-адрес-электронной почты-243202809 \ "]")). sendKeys ("ncl.reservation123 [email protected]");
@SarveshSingh - Отметьте это как ответ и задайте новый вопрос и добавьте ссылку сюда
Обновите вопрос с помощью соответствующего html