如何在 Robot Framework 中最大化 Headless Chrome window?

How to maximize Headless Chrome window in Robot Framework?

我无法以最大化 window 启动 Headless chrome。我尝试了两种解决方案,但其中 none 对我有用。 第一个解决方案:

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

我的解决方案哪里做错了?

要在使用 时最大化 浏览 Window,您需要替换:

add_argument    --start-maximized

有:

add_argument    window-size=1400,600

备选

命令 Maximize Browser Window 可能在 中仍然无效。

这是 robotframework 的已知问题已有一段时间了。我们在讨论 "Maximise browser Window" keyword not working in IE,FF and chrome.I am using selenium2Library 中详细讨论了这个问题。然而,@srib4ufrnd 提供了如下解决方法:

  • 第 1 步:当 selenium2library 安装在机器人框架中时,selenium2library 将在路径 C:\Python27\Lib\site-packages\Selenium2Library\keywords
  • 第 2 步:在这些 python 文件中,关键字 Maximise browser window 的代码存在于名称为 [=18 的 python 文件中=]
  • 第 3 步:Maximise 浏览器 window 的代码无法正常工作。

    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); }")
    
  • 第四步:复制上面的文件,另存为一个文件名,以备后用。如果我们需要在出现任何问题时快速恢复,这将对我们有所帮助。

  • 第 5 步:现在将“_browsermanagement.py”文件中的上述代码替换为以下代码。

    def maximize_browser_window(self):
        """Maximizes current browser window."""
        self._current_browser().maximize_window()
    
  • 第 6 步:编辑后保存文件 _browsermanagement.py

Note: Ensure you are saving the file in proper encoding technique using only "notepad" which comes as deafult with windows to edit and save the file.

  • 第 7 步:执行您的测试,现在可以对关键字执行相同的操作 Maximise 浏览器 window.

参考

您可以在以下位置找到一些相关讨论:

  • How to set window size in Selenium Chrome Python
  • Not able to maximize Chrome Window in headless mode

解决方案是使用 Set Window Size :

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}

什么对我有用

Call Method    ${chrome options}     add_argument    window-size\=1400,600

注意 \= 因为没有它就无法工作