[Resolved] Подскажите, плиз, почему не работает sendKeys в IE

Всем доброго дня!
Подскажите, пожалуйста, в чем может быть проблема:

Есть тест написанный на Java, для автоматизации. Но почему то в FireFox все удачно отрабатывает, а вот в IE запускается, открывает страничку, ставит курсор в строку поиска но символы не вводятся…тест падает. В чем может быть проблема? Использую IEDriverServer 2.44. Раньше все работало, а потом почему то перестало.Заранее Спасибо!

Пример кода:

package com.example.tests;

import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class Test1 {
  private WebDriver driver;
  private String baseUrl;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws Exception {
    driver = new InternetExplorerDriver();
    baseUrl = "https://ru.wikipedia.org/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testWikipediya() throws Exception {
    driver.get(baseUrl + "/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F");
    driver.findElement(By.id("searchInput")).clear();
    driver.findElement(By.id("searchInput")).sendKeys("selenium");
    driver.findElement(By.id("searchButton")).click();
    driver.findElement(By.xpath("(//a[contains(text(),'Firefox')])[3]")).click();
  }

  @After
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }


}

1 лайк

Эта тема теперь исключена из списков. Она не будет отображаться среди других тем ни на каких страницах, а единственным способом прочитать ее будет доступ по ее прямой ссылке.

Не совсем понял, а как же быть? Кто может помочь? Что необходимо добавить к теме чтобы мне смогли ответить?

Спасибо!

Для начала нужно научиться читать ЛС, а затем - правила портала. Администрация не зря прикрепила соответствующую тему по форматированию кода. :wink:

Эта тема включена в списки и будет отображаться среди других тем.

Тоже интересен этот вопрос. Только у меня тесты написаны на Python и они прекрасно выполняются в FF, Chrome, Opera, Safari, но перестали работать в IE. Падает с ошибкой NoSuchElementException.

Да, таже ошибка. Вот сейчас смотрю.Может это с обновлением IE связано. У меня сейчас версия IE 11.0.9600
К сожалению, не помню какая была до этого версия IE,но вроде не эта.

Вот я смотрю, что вы взяли последний IE драйвер, а сам IE то у вас какой версии? Вы ведь понимаете, что IE-драйвер - это хак, который пишется под конкретные версии браузера? Возможно сам факт, почему раньше работало, а теперь нет, связан как раз с тем, что версию драйвера вы то обновили, а сам браузер остался старым?

1 лайк

Версия браузера последняя. Сначала появилась ошибка, что версия драйвера устарела и не подходит к данной версии браузера. И предложил скачать более позднюю версию. Стояла сначала 2.38. Скачал все последующие версии (2.39 - 2.44). На всех кроме 2.44 выдавал ошибку несоответствия версий драйвера и браузера. С 2.44 заработал, но не находит элементы на странице ни по id, ни по name, class_name, xpath.

Версия браузера IE 11.0.9600.17498 это вроде последняя версия.

Ну майкрософт вечно плодит заплатки для IE. Возможно вышел очередной фикс и драйвер придется обновлять. Искали по последним темам комьюнити? Может уже кто-то постил нечто подобное и автор трудится над апдейтом?

П.С. А вообще, можете особо не париться насчет IE. Скоро выйдет Win 10, где IE заменят новым браузером Spartan, что само по себе означает похороны “всеми любимого” explorer’a. Может наконец тысячи QA вздохнут с облегчением. :smile:

Насчет “вздохнут с облегчением” не уверен. Например вся верхушка фирмы где я работаю сидят на IE7-8. И по статистики ~18% пользователей сидят на IE7-9.

Искал похожие темы есть…но решение для этой проблемы так и не нашел. Хорошо конечно что выйдет Win 10, но нужно уже чтобы сейчас работало. Даже не знаю у кого еще спросить…Скорее всего придется разобраться какая версия IE была до этого и ее установить. Но это плохое решение.

1 лайк

Ну, что ж, им же хуже. :wink:
А для UI-щиков IE < 9-10 = ад. А если UI-щикам приходится вставлять костыли, то это отражается и на работе автоматизаторов.

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

Хотите, чтобы работало? Зафиксируйте версии браузеров в тестовой стратегии. Disable auto update -> true. А затем подготовьте и мониторьте план апдейтов, желательно исключительно по требованию клиентов и по прошествии определенного времени после выхода обновления, чтобы минимизировать риск падений в следствии возможных багов сырого релиза.

Не люблю заниматься телепатией по понедельникам, но попробую…

2 лайка

Была проблема с sendKeys, правда в ие10, там под вин64 работал только иедрайвер для 32, возможно здесь похожая проблема

Нет, проблема не в этом. У меня тоже установлен драйвер для 32 бит. И раньше все отлично работало. Да 64битной версией есть проблемы поэтому в основном используют ПОКА 32 битную версию.

Проблема решена! Делается все очень просто и гениально, а именно: сносится НаХрен обновление KB3025390 и все будет отлично работать. Если кому то поможет буду рад, так как сам потратил на решение этой проблемы несколько дней. After installing Windows Update KB 3025390 IEDriverServer.exe does not execute JavaScript · Issue #8302 · SeleniumHQ/selenium-google-code-issue-archive · GitHub

По-моему, @vmaximv вам еще 2 дня назад эту ссылку кидал.
Повод задуматься над отключением автоапдейтов, не так ли? :wink: