Метод нажатия ведет себя по-разному при использовании ChromeDriver с Chrome и IEDriverServer с Internet Explorer 11 - PullRequest
0 голосов
/ 30 апреля 2019

Я создал xpath для chrome как:

"//a[@href[contains(.,'moduleCode=MASTER')]]"
Этот xpath работает нормально для chromedriver.Однако, когда тот же Xpath выполняется для IEDriverServer, он выдает ошибку, как показано ниже:
org.openqa.selenium.ElementNotVisibleException: Cannot click on element (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.10.0', revision: '176b4a9', time: '2018-03-02T19:03:16.397Z'

Но другой xpath:

"//a[contains(@href,'moduleCode=MASTER')]"
работает как для ChromeDriver, так и для IEDriverServer.

Не удалось выяснить, почему существует такая разница в обоих xpath-файлах и почему один из xpath не поддерживается для IEDriverServer.

Используются следующие возможности:

capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
             capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
             capabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true);
             capabilities.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
             capabilities.setCapability(InternetExplorerDriver.NATIVE_EVENTS, true);

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Извлечение ответа из ответа @ JimEvans в этом обсуждении :

Реализации драйверов для Firefox и Chrome разработанные и поддерживаемые поставщиками для этих браузеров ( Mozilla и Google ), и эти драйверы имеют доступ к внутренним компонентам браузера таким образом, что IEDriverServer не имеет (и, вероятно, никогда не будет) иметь.

Таким образом, существуют некоторые различия в способах реализации драйвера ideantify и щелчка по элементам.


Решение

При использовании IEDriverServer и Internet Explorer 11 Убедитесь, что для nativeEvents установлено значение true .

capabilities.setCapability("nativeEvents", true);
0 голосов
/ 30 апреля 2019

Как упомянуто в документации Selenium ,

На высоком уровне WebDriver использует собственные возможности XPath браузера где это возможно. В тех браузерах, в которых нет встроенного XPath поддержку, мы предоставили нашу собственную реализацию. Это может привести к какое-то неожиданное поведение, если вы не знаете о различиях в различные двигатели XPath.

...