Selenium webdriver 检测InternetExplorerDriver是否从客户端JavaScript控制浏览器

Selenium webdriver 检测InternetExplorerDriver是否从客户端JavaScript控制浏览器,selenium-webdriver,selenium-chromedriver,Selenium Webdriver,Selenium Chromedriver,在被远程控制的浏览器的javascript环境中,是否有InternetExplorerDriver创建的信号装置、标记或变量可用于在网页中创建javascript代码,以检测浏览器是否正常运行(显然是MSIE)并且由Selenium WebDriver通过InternetExplorerDriver进行控制?通过检查窗口.导航器对象上的特定属性,可以在前端检测到Internet Explorer 正如您所提到的,您希望向网页添加一些代码,您也可以使用NPM的“浏览器检测”包之一(假设前端代码使

在被远程控制的浏览器的javascript环境中,是否有InternetExplorerDriver创建的信号装置、标记或变量可用于在网页中创建javascript代码,以检测浏览器是否正常运行(显然是MSIE)并且由Selenium WebDriver通过InternetExplorerDriver进行控制?

通过检查
窗口.导航器
对象上的特定属性,可以在前端检测到Internet Explorer

正如您所提到的,您希望向网页添加一些代码,您也可以使用NPM的“浏览器检测”包之一(假设前端代码使用某种绑定器)

我个人更喜欢并建议使用这个-Bowser

如果要检测IE实例是否由Selenium控制,则可以检查Selenium在浏览器上公开的特定变量

在这种情况下,我不确定IE是否正确,但肯定有类似的方法。答案可以在这里找到:

请注意,使用InternetExplorerDriver等同于使用Selenium,因为这是唯一的IE驱动程序,所以我认为检测Selenium上下文应该足够了。

根据,驱动程序应该在
导航器
对象上设置允许检测的属性,特别是
导航器.webdriver
。不幸的是,这是目前IE驱动程序不遵守规范的少数地方之一

了解驱动程序的内部结构后,您可以查找
文档。\uuuu webdriver\u script\u fn
,这是驱动程序用于执行JavaScript的变量。请注意,此JavaScript执行变量由驱动程序的几个内部函数使用,而不仅仅是显式调用Selenium
executeScript
方法。但是,请注意,这是一个实现细节,可能会在不通知的情况下更改。事实上,开发团队正在研究4.x开发周期的重新体系结构选项,这些选项将完全取消


如果您能更明确地解释为什么要检测这样的事情,那么就有可能提供更具体和前瞻性的指导。然而,在撰写本文时,这可能是您能做的最好的了。

我正在尝试检测是否是由InternetExplorerDriver驱动的Internet Explorer,它是远程控制框架Selenium Webdriver的一个组件。我想你是在回答“如何检测Internet Explorer”的问题。有趣的是,有一个属性window.navigator.webdriver,但在远程控制的IE窗口上它被设置为false。你的意思是区分纯IE(不在Selenium上下文中运行)和Selenium通过InternetExplorerDriver使用的IE吗?我正在尝试检测webdriver以防止我的网站上出现刮擦器。通过IEDriverServer.exe在IE中加载页面时,我打开开发工具F12,但看不到文档。\uuu webdriver\u script\u fn-它是否立即出现,或者是否需要与浏览器进行一些交互?感谢您的回复-我注意到您在这个Selenium组件上拥有所有提交,因此您最有资格回答。不,正如我所说,属性是在驱动程序执行JavaScript时创建的。同样,驱动程序使用浏览器执行大量操作。但在它这样做之前,您不会检测到它。然后我推测答案是“目前没有可靠的方法来检测IEDriverServer”。