当前位置: 首页 > 知识库问答 >
问题:

打开Selenium浏览器的方式不与当前浏览器重叠

谢运良
2023-03-14

我有以下情况。启动Selenium测试后,将打开一个浏览器窗口。因为我有很多测试,每天都要启动很多次,所以我不会让Selenium在当前浏览器(我正在使用的浏览器)的前面打开新的浏览器窗口,而是在后台打开,这样就不会打扰我了。可能吗?

为了澄清为什么我需要这个——一天中有很多次,当我在当前浏览器中工作并且硒测试正在运行时,硒测试的浏览器窗口会突然打开,我可以突然关闭它,键入一些东西,等等。

我现在所拥有的:

共有2个答案

龙令雪
2023-03-14

浏览器是显示在当前浏览器上,还是显示在背景中,取决于驱动程序的实现以及浏览器之间的变化-它不依赖于Selenium或Serenity。不过,我通常在chrome中以无头模式运行测试,这样就完全消除了这个问题。

夏理
2023-03-14

从软件测试自动化开始是一门艺术。您的试验台应为:

>

  • 配置了所有必需的软件、库和二进制文件
  • 必须在受控环境中执行测试,以优化性能
  • 当您的@测试执行时,应该不需要手动干预
  • 特别是当您的@Tests是基于Selenium的测试时,在测试执行过程中不应干预测试环境,因为:

    >

  • <区块报价>

    在最低级别,动作类的行为旨在尽可能接近地模仿远程端与实际输入设备的行为,并且实现策略可能涉及例如将合成事件注入浏览器事件循环。因此,采取行动的步骤将不可避免地在具体实施领域结束。然而,某些内容可观察到的效果必须在实现之间保持一致。为了适应这一点,规范要求远程端执行特定于实现的操作调度步骤,以及事件及其属性的列表。该列表并不全面;特别是输入源的默认操作可能会导致根据浏览器的实现和状态生成额外的事件(例如,当焦点集中在可编辑元素上时,与关键操作相关的输入事件、滚动事件、等)。

    另外,,

    >

  • WebDriver API用户生成的激活触发器需要与与与浏览器交互的真实用户生成的触发器无法区分。特别是,已调度事件的isTrusted属性将设置为true。分派这些事件的最可靠方法是在浏览器实现本身中创建它们。将特定于操作系统的输入消息发送到浏览器窗口的缺点是,正在自动运行的浏览器可能无法与意外修改输入源状态的用户正确隔离。使用操作系统级可访问性API的缺点是浏览器的窗口必须集中,因此,多个WebDriver实例不能并行运行。

    操作系统级可访问性应用编程接口的一个优点是,它保证输入正确地反映用户输入,并允许在必要时与主机操作系统交互。然而,从机器利用率的角度来看,这可能会影响性能。

    另外,,

    >

  • Robot类用于生成本机系统输入事件,用于测试自动化、自动运行演示以及其他需要控制鼠标和键盘的应用程序。Robot的主要目的是促进Java平台实现的自动化测试。使用类生成输入事件不同于将事件发布到AWT事件队列或AWT组件,因为事件是在平台的本机输入队列中生成的。例如,机器人。mouseMove实际上会移动鼠标光标,而不仅仅是生成鼠标移动事件。

    最后,根据Internet Explorer和本机事件:

    >

    浏览器焦点:

    >

  • <区块报价>

    挑战在于,如果IE浏览器窗口没有焦点,IE本身似乎并不完全尊重我们发送给IE浏览器窗口的Windows消息(WM_MOUSEDOWN和WM_MOUSEUP)。具体来说,被点击的元素会在其周围收到一个焦点窗口,但点击不会被元素处理。可以说,我们根本不应该发送消息;相反,我们应该使用SendInput()API,但是该API明确要求窗口具有焦点。对于WebDriver项目,我们有两个相互冲突的目标。

    首先,我们努力尽可能地模仿用户。这意味着使用本机事件,而不是使用JavaScript模拟事件。

    第二,我们不希望浏览器窗口的焦点被自动化。这意味着仅将浏览器窗口强制到前景是次优的。

    始终保持测试环境与开发环境分开,并且绝对不受手动干预。

  •  类似资料:
    • 全局基类 登录名 } 问题是,当运行此功能时,我得到了下面的错误,我不明白为什么会发生这种情况,因为它在错误的位置上没有给我任何帮助。 未定义步骤:给定I打开Chrome 未定义步骤:浏览网站时 未定义的步骤:然后我使用“user1”和“password1”登录网站

    • 问题内容: 出于营销原因,我正在使用selenium打开一些浏览器窗口。我只是打开我的营销渠道,通过selenium登录并开始工作。 问题是,在执行代码后,selenium将关闭窗口。 到目前为止,所有解决方案均无济于事。 我有13个浏览器窗口atm。,如下所示: 我找到的最接近的解决方案是在脚本的末尾添加此内容,但是不知何故,它只能保持5个窗口打开,而不是关闭5个窗口并打开下5个新窗口: 我只希

    • 有可能让selenium使用TOR浏览器吗?有人有什么代码可以复制粘贴吗?

    • 我是Python新手,我试图在Debian中使用Selenium,但它不起作用,更具体地说,它似乎处于循环中,什么也没发生。下一个脚本是我使用的测试: 当我中断脚本时,会出现以下文本: 回溯(最近一次通话最后一次): 文件“prueba_parseo.py”,第7行,在browser=webdriver中。Firefox()文件“/usr/local/lib/python2.7/dist pack

    • 需要指导和帮助在下面一个。 当下面的代码执行时,我得到了错误。我使用的是最新版本的java、eclipse、火狐和WebDrive jar文件。 错误 线程"main"java.lang.IllegalStateExcture中的异常:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;有关详细信息,请参阅https://github.com/mozilla/g

    • 每当我尝试时,它都会说Chrome意外关闭并要求重新打开。在python末尾,它给出了错误: 我的代码是: 更新:在详细模式下运行会产生以下结果: