💬

[小ネタ]seleniumで開くウィンドウの場所とサイズを調整するためのスクリプト

2023/07/15に公開

やりたいこと

seleinumでウィンドウを開いたりしますが、モニタ内のどこに開くか、サイズをどうするか、細かく指定したいです。調整用に出力できるようにしました。

課題

たとえば、位置座標を決められますが、ウィンドウの左上がモニタの左上に来るようにしたくて(0,0)に設定すると、下のようにオフセットが入っていたりします。

(参考:アドレスバーの「data:,」はSelenium WebDriverでブランクページを開くと出ます)

前提

seleniumが使えること。私はこちらを参考にしていました。
https://prtn-life.com/blog/chromedriver

Pythonスクリプトで指定モニタする

以下では

  • ウィンドウサイズをWidth1080、Height800ピクセル
  • 位置座標を(0, 0) ※ウィンドウの左上が(0, 0にあるという意味)
    から開始して、1秒ごとに座標とサイズの情報をターミナルに出力します。
  • (import chromedriver_binaryは環境によっては不要です)
check_selenium_window.py
import time

import chromedriver_binary
from selenium import webdriver


def initialize_webdriver(url: str = None) -> webdriver.Chrome:
    driver = webdriver.Chrome()
    driver.set_window_size(1080, 800)
    driver.set_window_position(0, 0)
    return driver


driver = initialize_webdriver()

try:
    while True:
        position = driver.get_window_position()
        size = driver.get_window_size()
        print(
            "Window position: x = {}, y = {}. Size: width = {}, height = {}".format(
                position['x'], position['y'], size['width'], size['height']
            )
        )
        time.sleep(1)
except KeyboardInterrupt:
    print("\nStopping...")

結果

(-22, -19) がオフセットだたようです。

Window position: x = -22, y = -19. Size: width = 1080, height = 800

全画面のときは何故か (0, 0)になるようです。

Window position: x = 0, y = 0. Size: width = 1920, height = 1080

まとめ

  • seleniumで作成したウィンドウの位置とサイズを調整するために使えるPythonスクリプトを紹介しました

Discussion