SendKeys не заполняет значения в соответствующих компонентах в Internet Explorer, но в Chrome - PullRequest
0 голосов
/ 24 мая 2018

Я сталкиваюсь с такой проблемой, как SendKeys () не передает значения в правильные поля, даже если указан действительный идентификатор в Internet Explorer 11 .Если я запускаю тот же скрипт в браузере Chrome 66 + , он работает как положено.Почему?

Скрипт:

// Address Line1
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_address1_text")).clear();
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_address1_text")).sendKeys(ADDRESS1);
Thread.sleep(1000)

// City
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_city_text")).clear()
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_city_text")).sendKeys(CITY_NAME)
Thread.sleep(1000)

// State
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_state_text")).clear()
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_state_text")).sendKeys(STATE_CODE)
Thread.sleep(1000)

// Postal code
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_postalCode_text")).clear()
driver.findElement(By.id("accountForm:accountTabSet:0:paCustForm_main_postalCode_text")).sendKeys(POSTAL_CODE)
Thread.sleep(1000)

Вышеупомянутый скрипт взят с экрана обновления.Поэтому я очищаю существующий контент и передаю значения в соответствующие поля.

Проблема: Значения не совпадают, т. Е. AddressLine1 значение передается Город и Индекс поле получения FirstName value ( FYI: Я не упоминал в сценарии)

При выполнении того же сценария в Chrome Browser он работает правильно.Почему?

Кто-нибудь, пожалуйста, дайте мне решение для этого?

РЕДАКТИРОВАНИЕ: Прикрепленные скриншоты enter image description here enter image description here

Спасибо
Карунагара Панди

1 Ответ

0 голосов
/ 24 мая 2018

Эта проблема имеет тенденцию происходить.Это может быть связано с неправильным драйвером, неправильной версией драйвера и тем, что IE на самом деле является катастрофой браузера.Возможно, вы правильно находите элемент (если он работает для Chrome), но метод sendKeys () просто не работает должным образом, для IE у него есть проблемы, эта проблема также возникает в Safari.

Попробуйте один из способов, это может помочь:

Для 64-разрядного WebDriver: 1. Откройте IE 2. Перейдите в «Свойства обозревателя» → «Дополнительно» → «Безопасность» 3. Установите флажок «Включить 64-разрядные процессы для расширенного защищенного режима». Нажмите 4. Применить иOK

Для 32-разрядного WebDriver: 1. Откройте IE 2. Перейдите в «Свойства обозревателя» → «Дополнительно» → «Безопасность» 3. Снимите флажок ☐ Включите 64-разрядные процессы для расширенного защищенного режима 4. Нажмите «Применить» иOK

А также:

Свойства обозревателя -> Безопасность -> Проверить «Включить защищенный режим» для всех зон. Перейдите в «Расширенные» -> «Безопасность» -> «Включить расширенный защищенный режим»

.

И в коде попробуйте это:

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
...
capabilities.setCapability("requireWindowFocus", true);
WebDriver driver = new InternetExplorerDriver(capabilities);

и попробуйте это, но для меня это работало только на нескольких версиях IE:

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('ID').value='VALUE';");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...