Определить, если InternetExplorerDriver контролирует браузер с клиентской стороны JavaScript - PullRequest
0 голосов
/ 21 декабря 2018

Существует ли контрольный сигнал, маркер или переменная, созданные InternetExplorerDriver в среде javascript браузера, управляемой удаленно, которую можно использовать для создания кода javascript на веб-странице, которая определяет, является ли браузер (очевидно, MSIE) иконтролируется Selenium WebDriver через InternetExplorerDriver?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

В соответствии с спецификацией *1001* W3C WebDriver предполагается, что драйвер устанавливает свойство для объекта navigator, в частности navigator.webdriver, которое разрешает обнаружение.К сожалению, это одно из немногих мест, где драйвер IE не соответствует спецификации в настоящее время.

Зная внутреннюю структуру драйвера, вы можете искать document.__webdriver_script_fn, которая является переменной, используемойдрайвер для выполнения JavaScript.Обратите внимание, что эта переменная выполнения JavaScript используется несколькими внутренними функциями драйвера, а не только явными вызовами метода Selenium executeScript.Имейте в виду, однако, что это деталь реализации, которая может быть изменена без предварительного уведомления.На самом деле, команда разработчиков исследует варианты реархитектуры для цикла разработки 4.x, которые полностью с ним справились бы.Можно было бы предложить более конкретные и перспективные рекомендации.Однако на момент написания этой статьи это, вероятно, лучшее, что вы сможете сделать.

0 голосов
/ 21 декабря 2018

Internet Explorer можно обнаружить во внешнем интерфейсе, проверив определенные свойства объекта window.navigator.

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

Я лично предпочитаю и предлагаю использовать это - Bowser : https://www.npmjs.com/package/bowser

Если вы хотите определить, управляет ли ваш экземпляр IE Selenium, то вы можете проверить наличие конкретныхпеременные, которые Selenium выставляет в браузере.

Я не уверен насчет IE в этом случае, но определенно есть аналогичный способ сделать это.Ответ можно найти здесь: Может ли веб-сайт определить, когда вы используете селен с chromedriver?

Обратите внимание, что использование InternetExplorerDriver равнозначно использованию Selenium, поскольку это единственный драйвер IE, поэтому обнаружениеСелен контекста должно быть достаточно, я полагаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...