带有 java 关键字的机器人框架:Selenium.open(..) 以隐藏模式打开 Firefox 浏览器

Posted

技术标签:

【中文标题】带有 java 关键字的机器人框架:Selenium.open(..) 以隐藏模式打开 Firefox 浏览器【英文标题】:robot framework with java keywords : Selenium.open(..) opens Firefox browser in hidden mode 【发布时间】:2016-04-25 22:16:44 【问题描述】:

我有一个使用 selenium RC 开发的 Java 测试自动化套件。试图在 Robot Framework 测试套件中调用 Java 方法作为关键字。

有时,我看到 Selenium.open(..) ,虽然被执行,但 Firefox 浏览器(版本 38.3)被隐藏,下一个命令找不到启动的窗口,虽然机器人测试报告说打开命令是成功的。

同样的代码在谷歌浏览器上也能正常工作。

那么我们如何取消隐藏隐藏的FF窗口:

代码:

Java

public class UILib
  public void initSelenium()
    Selenium selenium=new DefaultSelenium(SEL_HOST, SEL_PORT, "chrome", ADMURL);
    //Starting Selenium Instance
    selenium.start();

    //Opening Selenium Browser
    selenium.open(AdminURL);
    Thread.sleep(1000);

   

机器人测试套件

*** Settings ***
Library    somepackage.UILib

*** Test Cases ***
Open Login page
     Init Selenium

【问题讨论】:

【参考方案1】:

要最大化您的浏览器窗口,请使用:

//Opening Selenium Browser
selenium.open(AdminURL);
selenium.windowMaximize()

【讨论】:

它不起作用。由于 Firefox 窗口是隐藏的,不可见的,虽然命令被执行,但看不到效果。谢谢。 @VivekKulkarni 好的,“隐藏”到底是什么意思?我只能想到“最小化”或“无头”。但后者绑定到您的 X 服务器,也会影响 Chrome。 隐藏是,浏览器根本不可见,但是在任务管理器进程列表中,浏览器被列出来了。并且所有 Selenium-Window 方法都在该浏览器会话上成功执行,但没有任何内容可见。希望这能清除。谢谢。【参考方案2】:

您可以使用 Robot Framework Builtin 命令来最大化浏览器。

Maximize Browser Window

【讨论】:

这不起作用,因为 selenium 会话是由 Java 类启动的,并且“最大化浏览器窗口”仅适用于机器人框架启动的会话。谢谢。【参考方案3】:

我还没有找到这个问题的根本原因。虽然我可以通过将 FF 版本升级到 38.5.1 来使其工作。

【讨论】:

以上是关于带有 java 关键字的机器人框架:Selenium.open(..) 以隐藏模式打开 Firefox 浏览器的主要内容,如果未能解决你的问题,请参考以下文章

带有变量分配的机器人框架中的 IF ELSE

带有 Gherkin 的机器人框架中的场景大纲

Selenium+Java完整框架搭建

机器人框架添加关键字

机器人框架库动态导入不保持全局

Pycharm for Robot 框架中的自动完成