当前位置: 首页 > 面试题库 >

有没有一种方法可以使用Selenium WebDriver而不通知文档它由WebDriver控制?

童宏富
2023-03-14
问题内容

我正在自动执行一个调用CAPTCHA来验证登录名的网页,但是我注意到该页面仅在使用自动化测试代码时才请求此CAPTCHA,而当我手动执行时则不请求。我要求开发人员团队在质量检查环境中禁用它,但是通过安全代码是不可能的。

我需要知道是否有一种方法可以不对浏览器说我正在此页面上使用自动测试。

你能帮我吗?


问题答案:

,没有任何方法可以隐瞒您正在运行自动化测试。

WebDriver界面

使用 WebDriver界面时
,由于用户代理受远程控制,因此 webdriver-active标志 设置为true。最初是错误的。

WebIDL

Navigator includes NavigatorAutomationInformation;

请注意,该NavigatorAutomationInformation接口不应在WorkerNavigator上公开。

WebIDL

interface mixin NavigatorAutomationInformation {
    readonly attribute boolean webdriver;
};

网络驱动

  • 如果设置了webdriver-active标志,则返回true,否则返回false。

  • 对于网络作者:

    navigator.webdriver
    

    Defines a standard way for co-operating user agents to inform the document that it is controlled by WebDriver, for example so that alternate code paths can be triggered during automation.

上面提到的实现基于以下两个 安全注意事项

  • 用户代理可以依靠命令行标志或配置选项来测试是否启用WebDriver,或者在用户代理不直接通过特权内容文档或控件小部件使用户代理启动或确认连接的情况下,实现HTTP端点。

  • 强烈建议用户代理要求用户采取明确的措施来启用WebDriver,并且WebDriver在用户使用的公共版本中保持禁用状态。

  • 还建议用户代理努力从视觉上区分WebDriver控制下的用户代理会话和用于正常浏览会话的用户代理会话。这可以通过浏览器的chrome元素来完成,例如 门衣架操作系统窗口的彩色装饰或窗口中普遍存在的一些小部件元素,以便轻松识别自动化窗口。



 类似资料:
  • 假设我有一个简单的JFrame,它有一个包含3个面板的JTabbedPane,第二个面板包含一个JComponent。当“Tab2”面板从其容器中移除时,是否有方法通知JComponent?我的问题是JComponent可能在层次结构的深处。 显然,我在这里寻找的是SWING解决方案...:) 我试图使用setridorRemoved(),但没有成功。我显然做错了什么... ASCII艺术是用Ja

  • 问题内容: 我正在寻找类似的东西: 我需要使用JS获取元素的innerHTML(要在Selenium WebDriver / Java中使用它,因为WebDriver本身无法找到它),但是如何? 我可以使用ID属性,但并非所有元素都具有ID属性。 [固定] 我正在使用jsoup在Java中完成它。这符合我的需求。 问题答案: 您可以使用: 计算XPath表达式字符串,并在可能的情况下返回指定类型的

  • 问题内容: 我有一个Jcheckbox,但只有勾号显示了它的选中状态,有没有一种方法可以将其更改为十字形或圆形?并且有一种方法可以将灰色背景更改为白色,setBackground似乎没有什么不同? 问题答案: 用户setPressedIcon,setIcon和setDisabledIcon

  • 问题内容: 嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗??? 问题答案: JavaScript和Java不是一回事。 JavaScript Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易: jWMI(Java)

  • 问题内容: 现在我正在做: 有没有更有效的方法直接从Find(或其他搜索功能)中获取带有用户名的slice,而没有struct和range循环? 问题答案: MongoDB的结果始终是文档列表。因此,如果要获取值列表,则必须像以前一样手动将其转换。 使用自定义类型(源自) 另外请注意,如果您要创建自己的类型(从派生),则可以覆盖其取消编组逻辑,并仅从文档中“提取” 。 它看起来像这样: 然后将用户

  • 在我的空手道测试中,我需要将响应ID写到txt文件(或任何其他文件格式,如JSON),我想知道它是否有能力做到这一点,我在文档中没有看到其他的。如果是no,那么是否有一个简单的JavaScript函数来执行此操作?