Я пытаюсь захватить поле раскрывающегося меню, используя автоматизацию тестирования в SELENIUM с драйвером Chrome.
Почему элемент "id" изменяется на некоторых веб-страницах при периодической проверке элементов в браузере Chrome?Как сохранить "id" в неизменном состоянии?
Шаги, за которыми я следовал:
- Когда я проверяю элементы на веб-странице, конкретное раскрывающееся меню показывает свой «id» в виде: id= "combo-1782-inputEl"
HTML:
<input id="combo-1782-inputEl**" type="text" class="x-form-field x-form-required-field x-form-text x-trigger-noedit x-form-focus x-field-form-focus x-field-default-form-focus" autocomplete="off" name="type" readonly="readonly" aria-invalid="false" data-errorqtip="" style="width: 135px;">
id
, наблюдаемый при проверке веб-страницы в обычном браузере Chrome:
![-](https://i.stack.imgur.com/xsIFW.png)
Затем я использовал вышеуказанный идентификатор в своем коде Java (скрипт автоматизации), как показано ниже:
driver.findElement (By.id ("combo-1782-inputEl")). Click ();
Когда я запускаю тест> Браузер Google Chrome открывается автоматически> Тест проходит успешно, пока не встретит вышеуказанную строку кода.
Но, когда он встречает вышеприведенную строку кода, тест завершился неудачно. Было выдано следующее исключение:
- class org.openqa.selenium.NoSuchElementException *
Затем я проверил тот же самый элемент выпадающего меню на веб-странице Chrome, который открывается (управляется) с помощью программного обеспечения для автоматического тестирования, и обнаружил, что «id» отличаетсячем предыдущий идентификатор, упомянутый в шаге 1. «Идентификатор» в этом случае: « combo-1781-inputEl »
id
, наблюдаемый при проверкевеб-страница в браузере Chrome, управляемая автоматизированным программным обеспечением:
![-](https://i.stack.imgur.com/K4Qpc.png)
Как видите, число в середине идентификатора уменьшилось с 1. (1782-1 = 1781)
Та же проблема была обнаружена в других пунктах выпадающего меню на той же веб-странице.
В чем причина этой проблемы?Как я могу преодолеть эту ситуацию?Пожалуйста помоги.:)
PS Когда я использовал «combo-1781-inputEl» («id» из шага 5) в моем коде, тест прошел успешно.
driver.findElement(By.id("combo-1782-inputEl")).click(); //Test: failed
driver.findElement(By.id("combo-1781-inputEl")).click(); //Test: passed
Я ожидал, что тест будет пройден, когда я использовал «id», полученный на шаге 1, проверяя веб-страницу в обычном браузере Chrome, который не контролируется автоматическим программным обеспечением.