web-dev-qa-db-ja.com

Chromedriverの開いているウィンドウのサイズを制御するにはどうすればよいですか?

自動化にSelenium WebDriverを使用しており、Chromedriverを使用しています。

ドライバーを実行してchromeブラウザーを開くと、ブラウザーが奇妙なサイズで開くことに気付きました。それを修正しようとしましたが、無駄でした。

誰がどのように変更できるか知っていますか?

45
Nimrod_G

私はそれが古いスレッドであることを知っていますが、上記のどれも私にとってはうまくいきませんでした。私は使っています

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)
63
Yonatan Kiron

カスタムサイズにこれを使用します。

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

要件に合わせて寸法を変更できます。

24
nitin chawda

@ yonatan-kironの回答のC#バージョン、およびサンプルコードからのSeleniumのusingステートメント。

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

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

これを試して

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

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

7
ayoub laaziz

ウィンドウを最大化するには、driver.manage.window.maximize();を試してください。

5
TDHM

PhpにFacebook言語バインディングを使用している場合、これを試してください:

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

Ruby


アプローチ#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

アプローチ#

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);")
1
Prashanth Sams

次のchromeオプションは、ヘッドレスクロームに対して機能しました。

IN 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

Chrome:v69-71

0
Burak Ozmen

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)))
0
Asim Jalis

つかいます Dimension Classウィンドウサイズを制御します。

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

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ではサポートされていません。したがって、最後のオプションはコマンドラインスイッチを使用していました。

0
yeshwant singh

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

これにより、ブラウザが全画面表示されます

0
mackowski