Щелчок Selenium не работает в Internet Explorer 11

Я пытаюсь щелкнуть селеном в Internet Explorer, но он не работает. Я пробовал element.click(), moveToElement(element).click().build().perform(), javascript и ничего.

На самом деле щелчок иногда срабатывает. Это действительно нестабильно. Я также пробовал подождать, пока не станет кликабельным, Thread.sleep и, знаете, ничего не изменится.

Я использую Selenium 3.4.0, IEDriverServer_x64_3.0.0, ie11 и java.

вы проверили уровень масштабирования 100%? вам необходимо предоставить HTML-код и фактический журнал ошибок, чтобы определить проблему.

Bendram 04.04.2018 16:37

@Bendram Я проверил уровень масштабирования. Я не могу предоставить HTML, потому что код взят из моей работы, но он действительно нестабилен. Иногда ошибка в одном месте, иногда в другом ... Но дело в том, что селен явно щелкает элемент, но не распознает, а затем тест продолжается. Ошибка возникает из-за того, что ie не находит элемент, к которому предполагается получить доступ после того, как этот первый элемент был нажат.

Will 04.04.2018 16:59

Если вы не можете опубликовать реальный исходный код, не могли бы вы попробовать опубликовать его очищенную версию? Все, что мы можем сделать с текущим описанием, - это предположить и проверить стандартные процедуры устранения неполадок.

Rescis 04.04.2018 17:31

Единственное, что вы можете сделать, - это ЖДАТЬ элемента, а также перемещаться по смещению.

Shahboz 04.04.2018 18:58

seleniumActions.MoveToElement (PageObject) .MoveByOffset (xOffs‌ et, yOffset) .Click (). Build (). Perform ();

Shahboz 04.04.2018 18:58

@ Hashim77 Это не сработало. :(

Will 04.04.2018 23:36

Ну а смещение было правильное? А вы ждали, пока отобразится элемент?

Shahboz 05.04.2018 00:08

@ Hashim77 Да: wait.until(ExpectedConditions.elementToBeClickable(element))‌​; action.moveToElement(element).moveByOffset(element.getLoc‌​ation().getX(), element.getLocation().getY()).click().build().perform();, а также: if (element.isDisplayed()){ action.moveToElement(element).moveByOffset(element.getLocati‌​on().getX(), element.getLocation().getY()).click().build().perform(); }

Will 05.04.2018 16:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
8
3 833
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я где-то видел это решение, и оно сработало для меня:

wait.until(ExpectedConditions.visibilityOfElementLocated(locator)) element.sendKeys(""); element.click();

Я не понимаю, что на самом деле делает element.sendKeys(""), но это нормально.

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