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

如何最大化机器人框架中的无头Chrome窗口?

袁亦
2023-03-14

我无法用最大化窗口启动无头铬合金。我尝试了两种解决方案,但都不适用。第一个解决方案:

Open Browser    ${LOGIN_URL}    headlesschrome
Maximize Browser Window

第二个:

${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
Call Method    ${chrome_options}    add_argument    --start-maximized
Create Webdriver    Chrome    chrome_options=${chrome_options}
Go To   ${LOGIN_URL}
Maximize Browser Window

我的解决方案做错了什么?

共有2个答案

桂志新
2023-03-14

要在使用google chrome headless时最大化浏览窗口,您需要更换:

add_argument    --start-maximized

与:

add_argument    window-size=1400,600

命令最大化浏览器窗口可能仍无法在robotframework中工作。

这是robotframework在相当一段时间内的一个已知问题。我们在讨论“最大化浏览器窗口”关键字不适用于IE、FF和chrome时讨论了这个问题。我正在使用Selenium2图书馆。然而,@srib4ufrnd提供了如下解决方法:

>

  • 步骤1:当Selenium2库安装在机器人框架中时,Selenium2库将在路径C:\Python27\Lib\site packages\Selenium2库\keywords
  • 步骤2:在这些python文件中,关键字maximize browser window的代码出现在名为browsermanagement的python文件中。py
  • 步骤3:最大化浏览器窗口的代码不起作用。

    def maximize_browser_window(self):
        """Maximizes current browser window."""
        self._current_browser().execute_script("if (window.screen) { window.moveTo(0, 0); window.resizeTo(window.screen.availWidth, window.screen.availHeight); }")
    

    第4步:复制上述文件并用另一个名称保存以备备份。如果我们需要在出现任何问题时迅速恢复,这将有助于我们。

    步骤5:现在用以下代码替换“_browsermanagement.py”文件中的上述代码。

    def maximize_browser_window(self):
        """Maximizes current browser window."""
        self._current_browser().maximize_window()
    

    注意:确保您只使用“记事本”以正确的编码技术保存文件,记事本与窗口一起来编辑和保存文件。

    • 步骤7:执行您的测试,现在可以执行关键字最大化浏览器窗口的相同操作。

    您可以在以下网站找到一些相关讨论:

    • 如何在Selenium Chrome Python中设置窗口大小

  • 劳法
    2023-03-14

    解决方案是使用设置窗口大小:

    Call Method    ${chrome_options}    add_argument    --disable-extensions
    Call Method    ${chrome_options}    add_argument    --headless
    Call Method    ${chrome_options}    add_argument    --disable-gpu
    Call Method    ${chrome_options}    add_argument    --no-sandbox
    Create Webdriver    Chrome    chrome_options=${chrome_options}
    Set Window Size ${1400} ${600}
    Go To   ${LOGIN_URL}
    
     类似资料:
    • 在我测试的页面上有一个链接,默认情况下在新选项卡中打开。我需要打开链接,并在新打开的页面上验证一些值。因为我发现selenium不支持使用选项卡,所以我试图在新窗口中打开链接,但它仍然不能工作…我实现了python函数来保持SHIFT键(我以前为CTRL做过这个,它很有效),然后我调用了“click”函数,但链接仍然在新选项卡中打开 我尝试了许多变体与睡眠,释放键等,但它从来没有真正打开链接在新的

    • 我正在尝试设置一个容器,以便在Chrome上使用RobotFramework进行测试。 但是当我运行容器时,我总是得到一个WebDriverException。我已经找过了,但找不到任何对我有效的修复方法。 这是我的Dockerfile

    • 在Eclipse中,我可以键入< kbd>Ctrl M或单击编辑器窗格中的最大化图标,使编辑器窗格占据整个Eclipse窗口,然后再次将窗格恢复到原来的大小,露出其他窗格。 是否可以在IntelliJ IDEA中执行等效项? 为了澄清,我要求隐藏所有其他工具窗格以仅显示编辑器窗格。我不是在问如何进入无干扰模式,因为这是完全“全屏”的模式,隐藏所有工具栏,窗口装饰等。

    • 窗口不最大化问题只发生在网格节点中。我们尝试了不同的方法来解决它,如下所示,但没有任何效果''Dimension Dimension=new Dimension(1920,1080)driver.manage().window().setsize(Dimension);driver.manage().window().maximate()options.AddArguments(“--window

    • 你好,我是一个新的初级测试软件,我被要求学习X射线和机器人框架,以及如何实现两者。 在我开始学习机器人框架之后,我用X射线做了一些测试用例,直到一切都很好。 现在我一直在尝试实施我在机器人上做的测试案例的结果到X射线中的测试执行,但每次我尝试将output.xml从机器人导入X射线而不是“同步”这个测试X射线创造了我新的测试关心机器人的结果。 有没有人以前做过这件事可以帮我?我曾尝试在robot中

    • 问题内容: 考虑以下源代码, 如何检索列表变量中的两个名称(Name1,Name2)?我为“ Get Text”关键字尝试了以下xpath,但仅返回第一个。 请建议 问题答案: 您可以遍历以下元素: 这种方法有效,但是在有许多匹配项时速度很慢。