【发布时间】:2014-09-16 07:34:39
【问题描述】:
我到处读到,网站不可能检测到用户正在使用 selenium webdriver……但为什么?
例如,Firefox 中的 webdriver 插件添加了一个“webdriver 属性”到
<html> 元素。所以<html>... 转到<html webdriver="true">...
我很困惑...为什么无法检测到 webdriver?
我写了一点 Javascript 来获取 document.outerHTML... 还有 webdriver 属性! = 检测到!?
这是我在浏览器中使用 Webdriver 测试的代码,没有:
<html>
<head>
<script type="text/javascript">
<!--
function showWindow(){
javascript:(alert(document.documentElement.outerHTML));
}
//-->
</script>
</head>
<body>
<form>
<input type="button" value="Show outerHTML" onclick="showWindow()">
</form>
</body>
</html>
谁能解释一下为什么无法检测到 Webdriver?
【问题讨论】:
-
你能解释一下你在哪里得到“firefox 中的 webdriver 插件”吗?
-
它是预装在 FirefoxDriver 中的,但它不是插件。这是一个插件
-
好的,我不确定你有什么,但我有一个猜测。 en.wikipedia.org/wiki/WebDriver#Selenium_WebDriver 说:“截至 2012 年初,Simon Stewart ... [正在与 W3C 进行谈判,以使 WebDriver 成为互联网标准。”我不知道你的插件是做什么的,但这不是 Selenium 测试自动化工具。
-
你的问题是它不是一个跨平台的或跨浏览器“检测”WebDriver的解决方案。你是对的,它是在 FFDriver 中设置的,但 only。因此,您的检测方法将在所有其他浏览器上失败。另外值得一提的是,FF Driver 最终将被 Marionette 取代 - 所以这个解决方案甚至可能无法继续工作。但是,很好的发现,它是在初始页面加载时设置的:source
-
您看到的 Firefox 插件是
FirefoxDriver的当前实现。驱动程序创建一个匿名配置文件,其中安装了一个提供驱动程序实际实现的 Firefox 扩展。如其他地方所述,驱动程序的未来版本将不再依赖扩展来驱动浏览器,而是使用浏览器本身提供的技术(也称为“木偶”)。
标签: javascript testing selenium webdriver detect