Selenium 如何控制Chromedriver打开窗口的大小?

Selenium 如何控制Chromedriver打开窗口的大小?,selenium,selenium-chromedriver,Selenium,Selenium Chromedriver,我使用Selenium WebDriver实现自动化,我使用的是Chromedriver 我注意到,当我的驱动程序运行并打开chrome浏览器时,它会以奇怪的大小打开浏览器。 我试图把它修好,但徒劳 有人知道如何更改它吗?尝试使用driver.manage.window.maximize()以最大化窗口。尝试此操作 using System.Drawing; driver.Manage().Window.Size = new Size(width, height); 将此选项用于您的自定义尺寸

我使用Selenium WebDriver实现自动化,我使用的是Chromedriver

我注意到,当我的驱动程序运行并打开chrome浏览器时,它会以奇怪的大小打开浏览器。 我试图把它修好,但徒劳


有人知道如何更改它吗?

尝试使用
driver.manage.window.maximize()以最大化窗口。

尝试此操作

using System.Drawing;
driver.Manage().Window.Size = new Size(width, height);

将此选项用于您的自定义尺寸:

driver.manage().window().setSize(new Dimension(1024,768));

您可以根据自己的要求更改维度。

如果您使用的是用于php的Facebook语言绑定,请尝试以下操作:

$driver->manage()->window()->setSize(new WebDriverDimension(1024,768));
在java/groovy中,请尝试:

import java.awt.Toolkit;
import org.openqa.selenium.Dimension;         
import org.openqa.selenium.Point;

...

java.awt.Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

Dimension maximizedScreenSize = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight());
driver.manage().window().setPosition(new Point(0, 0));
driver.manage().window().setSize(maximizedScreenSize);

如果您使用Clojure,这将全屏打开浏览器,您可以使用此代码段调整浏览器大小

(require '[clj-webdriver.taxi :as taxi])

; Open browser
(taxi/set-driver! {:browser :chrome} "about:blank")

; Resize browser
(-> taxi/*driver* (.webdriver) (.manage) (.window) 
  (.setSize (org.openqa.selenium.Dimension. 0 0)))

使用
维度类
控制窗口大小

Dimension d = new Dimension(1200,800);  //(x,y coordinators in pixels) 
driver.manage().window().setSize(d);
python 司机 代码: Ruby版本:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args"=> ["--window-size=1280,960"]})

url = "http://localhost:9515"  # if you are using local chrome or url = Browserstack/ saucelabs hub url if you are using cloud service providers.

 Selenium::WebDriver.for(:remote, :url => url, :desired_capabilities => caps)
调整chrome的大小在最新的ChromeDriver中有缺陷,它会间歇性地失败,并显示此失败消息

                        unknown error: cannot get automation extension
from timeout: cannot determine loading status
from timeout: Timed out receiving message from renderer: -65.294
  (Session info: chrome=56.0.2924.76)
  (Driver info: chromedriver=2.28.455517 (2c6d2707d8ea850c862f04ac066724273981e88f)
通过SeleniumWebDriver启动的chrome也不支持通过javascript重新调整大小。最后一个选项是使用命令行开关。

C#版本的@yonatan kiron的答案,以及Selenium的
使用示例代码中的
语句

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--window-size=1300,1000");

using (IWebDriver driver = new ChromeDriver(chromeOptions))
{
    ...
}

以下chrome选项适用于无头chrome:

在JAVA中:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--window-size=1920,1080");
chromeOptions.setHeadless(true);
driver = new ChromeDriver(chromeOptions);
driver.get("your-site");
driver.manage().window().maximize();
selenium java:3.8.1

色度驱动器:2.43

铬:v69-71红宝石


方法#1

options = {
      'chromeOptions' => {
          'args' => ['start-fullscreen']
      }
  }

caps = Selenium::WebDriver::Remote::Capabilities.chrome(options)
@driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
方法#2

options = {
      'chromeOptions' => {
          'args' => ['window-size=640,480']
      }
  }

caps = Selenium::WebDriver::Remote::Capabilities.chrome(options)
@driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
方法#3

max_width, max_height = @driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)
方法#4

@driver.manage.window.maximize
方法#5

target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
方法#6

@driver.manage.window.resize_to(640, 480)
方法#7

@driver.execute_script("window.resizeTo(640, 480);")

谢谢,但我不想要全屏,而是想用我自己的尺寸来调整窗口的大小。Chromedriver出于某种原因在打开浏览器时修复窗口大小。您使用的是什么语言绑定?API提供了设置windows大小的方法,无论您使用的是哪种驱动程序(除非您对ChromeDriver有特殊问题,否则请提供更多信息)。这是一篇你可能想看的文章。这是指向webdriver chrome的链接,这一个对我有用。驱动程序版本81.0.4044.138是的,chromedriver中最新的窗口大小调整有问题,他们说它在2.28版本中得到了修复,但我在该版本中也遇到了错误。最后我还使用命令行开关并将窗口大小作为参数传递。谢谢!使用ChromeDriver 2.32,这是适用于无头变体的唯一选项。窗户。driver.Manage().Window.Size不起作用。我注意到它似乎有一个最大大小,如果您查看它,它会自动恢复到该大小。(我的机器,1940像素高,但似乎有所不同。)更新:我的评论适用于Chrome,但不适用于Firefox。此符号也适用于
Chrome\u选项。添加参数('--window size=768x1024')
似乎不适用于无头Chrome(版本60)。然而,@Yonatan Kiron的回答确实如此works@MiguelD“Alessio很高兴它有帮助:)木偶师解决方案:请参阅在Chrome Devtools协议(CDP)会话中使用
session.send('Browser.setWindowBounds',{windowId,bounds:{width:width,height:height}})
来完成此任务。除此之外的所有其他答案都是非默认窗口大小,这意味着它仍将推出丑陋+1。
target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
@driver.manage.window.resize_to(640, 480)
@driver.execute_script("window.resizeTo(640, 480);")