Тот же идентификатор для раскрывающегося списка 2 не может выполнять действия om 2 one

В моем коде есть 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"> 

Обновите вопрос с помощью соответствующего html

GPT14 30.05.2018 16:20

если вы заглянете в инструменты разработчика своего браузера (f12 в хроме), вы увидите элемент дважды на вкладке элементов? Вы можете попробовать выбрать его с помощью соответствующего xPath

Jungkook 30.05.2018 16:23

@SE Боже, я думаю, он имел в виду, что одно и то же раскрывающееся меню присутствует на двух разных страницах.

GPT14 30.05.2018 16:32

Да, оба они представлены на двух разных страницах.

Sarvesh Singh 30.05.2018 16:40

для 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">

Sarvesh Singh 30.05.2018 16:52

Идентификатор одинаков для обоих и класса, единственная разница - это числовое значение, я не знаю, как я могу использовать эту разницу, чтобы выбрать два раскрывающихся списка. помощь

Sarvesh Singh 30.05.2018 17:02

Размещение ссылки на страницу будет самым быстрым способом получить ответ. Что нужно сделать для второй страницы, чтобы раскрывающийся список стал видимым? Вы пробовали подождать? Как узнать, что вы нашли нужный элемент?

JeffC 30.05.2018 18:41

@JeffC Я проверил элемент, а также попробовал отображается, поэтому я уверен, что нахожу нужный элемент

Sarvesh Singh 30.05.2018 18:45

возможная дублирующаяся проблема с stackoverflow.com/questions/50618697/…

pburgr 31.05.2018 10:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
9
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать ниже 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"))); верно?

Sarvesh Singh 30.05.2018 17:56

В своем ответе я указал селектор CSS, вы должны его использовать.

Prany 30.05.2018 17:59

Теперь он работает хорошо, спасибо, приятель, но есть блок электронной почты, где я должен ввести адрес электронной почты, и он не работает, вот код для этого driver.findElement (By.cssSelector ("select [id = \" email- адрес \ "] [данные-синхронизация-to-element = \" # личная-информация-просмотр-адрес-электронной почты-243202809 \ "]")). sendKeys‌ ("ncl.reservation123‌ [email protected]");

Sarvesh Singh 30.05.2018 18:47

@SarveshSingh - Отметьте это как ответ и задайте новый вопрос и добавьте ссылку сюда

Prany 30.05.2018 18:52

Другие вопросы по теме