如何控制Chromedriver打开窗口尺寸?

时间:2014-04-30 06:43:10

标签: selenium selenium-chromedriver

我正在使用Selenium WebDriver进行自动化,而我正在使用 Chromedriver

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

有人知道我该怎么改变它?

13 个答案:

答案 0 :(得分:59)

我知道这是一个老线程,但上面没有为我工作。 我正在使用

chrome = 57.0.2987.133
chromedriver = 2.27.440174

这对我有用:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--window-size=1920,1080")
driver = Chrome(chrome_options=chrome_options)

答案 1 :(得分:24)

将此用作自定义尺寸:

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

您可以根据自己的要求更改尺寸。

答案 2 :(得分:8)

试试这个

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

答案 3 :(得分:8)

@ yonatan-kiron的答案的C#版本,以及他们的示例代码中的Selenium的using声明。

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

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

答案 4 :(得分:6)

#use chrome webdriver
driver = webdriver.Chrome('path to /chromedriver') driver.set_window_size(1400,1000)

答案 5 :(得分:4)

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

答案 6 :(得分:1)

如果你正在使用Facebook语言绑定php试试这个:

$driver->manage()->window()->setSize(new WebDriverDimension(1024,768));

答案 7 :(得分:1)

红宝石


方法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);")

答案 8 :(得分:0)

在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);

这将全屏打开浏览器

答案 9 :(得分:0)

如果您使用的是Clojure和https://github.com/semperos/clj-webdriver,则可以使用此代码段来调整浏览器的大小。

(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)))

答案 10 :(得分:0)

使用Dimension Class来控制窗口大小。

Dimension d = new Dimension(1200,800);  //(x,y coordinators in pixels) 
driver.manage().window().setSize(d);

答案 11 :(得分:0)

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)

resize chrome在最新的chromedrivers中是错误的,它会因此失败而间歇性地失败。

                        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)

并且通过javascript也不支持resizeTo通过selenium webdriver启动的chrome。所以最后一个选项是使用命令行开关。

答案 12 :(得分:0)

以下镀铬选项对我无头镀铬很有效:

在日语中

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();

硒Java:3.8.1

chromedriver:2.43

Chrome浏览器:v69-71