💬
[小ネタ]seleniumで開くウィンドウの場所とサイズを調整するためのスクリプト
やりたいこと
seleinumでウィンドウを開いたりしますが、モニタ内のどこに開くか、サイズをどうするか、細かく指定したいです。調整用に出力できるようにしました。
課題
たとえば、位置座標を決められますが、ウィンドウの左上がモニタの左上に来るようにしたくて(0,0)に設定すると、下のようにオフセットが入っていたりします。
(参考:アドレスバーの「data:,」はSelenium WebDriverでブランクページを開くと出ます)
前提
seleniumが使えること。私はこちらを参考にしていました。
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