【问题标题】:How to resize/maximize Firefox window during launching Selenium Remote Control?如何在启动 Selenium 远程控制期间调整/最大化 Firefox 窗口?
【发布时间】:2010-12-04 01:58:13
【问题描述】:

我正在使用 Selenium Remote Control 。在执行测试期间,实际的 Firefox 窗口非常小。我想要它全屏,所以我可以看到发生了什么。如何最大化浏览器屏幕?

【问题讨论】:

  • 您在 Selenium-RC 中使用什么编程语言? java、C# 还是什么?
  • 如何通过执行 Selenium WebDriver 来调整/最大化 FF?

标签: firefox selenium selenium-rc automated-tests


【解决方案1】:

试试 windowMaximize 命令:

selenium.windowMaximize();

您还可以使用以下命令设置特定的宽度和高度:

selenium.getEval("window.resizeTo(X, Y); window.moveTo(0,0);")

X 是宽度,Y 是高度。

【讨论】:

  • 对于那些使用 Python 的人来说,可以预见的是,my_selenium_instance.window_maximize()
  • 评估不适用于较新版本的 Firefox。请参阅 Eli Colner 的回答。
  • @BrandonRhodes,在python中它实际上是maximize_window()
【解决方案2】:

这对我有用。所有其他解决方案在 FF7 中都不起作用。

WebDriver driver = ((WebDriverBackedSelenium) selenium).getWrappedDriver();
driver.manage().window().setPosition(new Point(0, 0));
driver.manage().window().setSize(new Dimension(1920, 1080));

【讨论】:

  • 似乎是 FF7+ 上的唯一方法(对我来说它是 OSX 上的 FF9.0.1)
  • 只使用答案的第二两行,因为我使用没有 Selenium 的纯 Webdriver 运行。谢谢。
  • Javascript 版本:driver.manage().window().setSize(1920, 1080);
  • user85461,你说的Javascript版本是什么意思?与使用 WebDriverJS 绑定的等效调用一样吗?不要让其他用户感到困惑,以为您可以将其作为纯 javascript 执行并且它会简单地工作。
  • 只是想指出,以免其他用户误会。此代码适用于 Java(或者也可能适用于 C#)。其他 WebDriver 语言绑定的语法会有所不同,并且那些其他的不会有 WebDriverBackedSelenium 的第 1 行。
【解决方案3】:

您可以执行以下操作:

page.driver.browser.manage.window.maximize

【讨论】:

  • 其他的都不起作用。出于安全原因,一个 javascript
【解决方案4】:

硒 2.31.0

driver = webdriver.Firefox()

# Resize the window to the screen width/height
driver.set_window_size(300, 500)

# Move the window to position x/y
driver.set_window_position(200, 200)

【讨论】:

  • 这应该在 Python 中?
【解决方案5】:

对于火狐: sel.key_press_native(122) (F11键码中的122)

【讨论】:

  • 这是一个有趣的琐事。我不知道你能做到这一点。虽然这可能不是他想要的,但这对脚本演示很有用。
【解决方案6】:

我认为最好的方法是使用 selenium.windowMaximize() selenium 函数而不是操纵窗口大小。

【讨论】:

    【解决方案7】:

    -singlewindow 参数传递给 Selenium RC 服务器时,提供的答案均无效。但是,如果您将 firefox 配置文件传递给 Selenium RC 服务器 (as detailed somewhat here),则可以创建一个空的配置文件文件夹并将此文件放入文件夹中:

    localstore.rdf(case sensitive filename!):

    <?xml version="1.0"?>
    <RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
             xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <RDF:Description RDF:about="chrome://browser/content/browser.xul#main-window"
                       sizemode="normal"
                       height="9999"
                       width="9999"
                       screenX="0"
                       screenY="0" />
                       lastSelected="paneTabs" />
      <RDF:Description RDF:about="chrome://browser/content/browser.xul">
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#main-window"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#PersonalToolbar"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#nav-bar"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#status-bar"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#toggle_taskbar"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#navigator-toolbox"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#toolbar-menubar"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-box"/>
        <NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-title"/>
      </RDF:Description>
    </RDF:RDF>
    

    将宽度和高度替换为您喜欢的宽度和高度。 9999x9999 几乎可以最大化任何显示器。

    以这种方式运行 Selenium RC 服务器的最简单示例假设我们的主目录中有前面提到的 localstore.rdf,并且我们当前位于 Selenium RC 服务器的目录中:

    rm -rf ~/ffProfile
    mkdir ~/ffProfile
    cp localstore.rdf ~/ffProfile
    java -jar selenium-server-*.jar -singlewindow -firefoxProfileTemplate "~/ffProfile"
    

    这还有一个额外的好处,那就是不会“污染”您的测试。

    【讨论】:

      【解决方案8】:

      要扩展 David Hunt 关于更具体的窗口大小调整和移动的建议,请注意以下内容。

      要在大多数环境中工作,请在调整大小之前移动。那就是:

      selenium.getEval("window.moveTo(X, Y); window.resizeTo(X, Y); ")

      覆盖 2/3 的屏幕,便于查看下方的硒驱动窗口的一部分,并且不管您的目标屏幕分辨率如何:

      selenium.getEval("window.moveTo(screen.availWidth / 3,0); window.resizeTo(screen.availWidth * (2/3), screen.availHeight); ");

      【讨论】:

        【解决方案9】:

        在 ruby​​ 中,调用是

        web_driver.manage.window.maximize

        【讨论】:

          猜你喜欢
          • 2011-03-20
          • 1970-01-01
          • 2011-06-10
          • 1970-01-01
          • 1970-01-01
          • 2023-03-16
          • 2011-01-11
          • 2023-01-17
          • 1970-01-01
          相关资源
          最近更新 更多