如何在 Selenium Chrome Python 中设置窗口大小

Dav*_*ler 10 python selenium google-chrome selenium-chromedriver google-chrome-headless

以下用于调整 selenium chrome 窗口大小的代码不起作用:

driver.set_window_size(1920, 1080)
time.sleep(5)
size = driver.get_window_size()
print("Window size: width = {}px, height = {}px.".format(size["width"], size["height"]))
Run Code Online (Sandbox Code Playgroud)

其输出为:

Window size: width = 1044px, height = 788px
Run Code Online (Sandbox Code Playgroud)

我还尝试使用选项来设置驱动程序创建时的窗口大小(以及许多其他内容,参见下面的评论),但也无法使其工作:

options.add_argument("--window-size=1920,1080")
Run Code Online (Sandbox Code Playgroud)

我正在使用 selenium 3.14.0,chrome 驱动程序版本 72.0.3626.109 并在后台/无头模式下运行:我确实需要在后台运行我的代码,这意味着它会在后台自动启动。我认为无头(启动时与特定用户相关联)和背景(也是无头但可能不与特定用户相关联并且可能有其他特质)之间存在细微的区别 - 我开始认为这可能成为我的问题的一部分。

我想让 chrome 驱动程序工作,因为 firefox 不在后台运行(我需要),而 ie 很痛苦。

我想解决这个问题,因为当窗口很小时我看不到需要单击的元素。

Deb*_*anB 19

有点不清楚你被困的原因和确切位置。可能额外的事情.正在height = {}px.造成混乱。也许与-headless参数一起,我可以设置/检索Chrome浏览器窗口大小,如下所示:

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("--headless")
    options.add_argument("window-size=1400,600")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe', service_args=["--log-path=./Logs/DubiousDan.log"])
    driver.get("http://google.com/")
    print ("Headless Chrome Initialized")
    print(driver.get_window_size())
    driver.set_window_size(1920, 1080)
    size = driver.get_window_size()
    print("Window size: width = {}px, height = {}px".format(size["width"], size["height"]))
    driver.quit()
    
    Run Code Online (Sandbox Code Playgroud)
  • 控制台输出:

    Headless Chrome Initialized
    {'width': 1400, 'height': 600}
    Window size: width = 1920px, height = 1080px
    
    Run Code Online (Sandbox Code Playgroud)

TL; 博士

您可以在以下位置找到一些有关窗口大小的相关讨论:


Kun*_*duK 8

代替

options.add_argument("--window-size=1920,1080")
Run Code Online (Sandbox Code Playgroud)

你能试试这个吗?

options.add_argument('window-size=1920x1080');
Run Code Online (Sandbox Code Playgroud)

或者

options.add_argument("--start-maximized")
Run Code Online (Sandbox Code Playgroud)


Mah*_*bas 7

您可以使用set_window_sizewebdriver 类中的函数:

driver.set_window_size(width, height)
Run Code Online (Sandbox Code Playgroud)

例如:

driver.set_window_size(800, 600)
Run Code Online (Sandbox Code Playgroud)


Dav*_*ler 6

所以我终于弄清楚了问题所在:使用“无论用户是否登录都运行”选项运行 Windows 任务计划程序只会打开一个无法调整大小的小浏览器(1024x768),即使这里提供了所有很棒的建议。

请参阅此处解决的相同问题:Windows 任务计划程序中“无论用户是否登录都运行”模式下的屏幕分辨率

因此,不太理想的解决方法是仅在用户登录时运行。


归档时间:

查看次数:

32714 次

最近记录:

5 年,11 月 前