selenium后台执行时,设置窗口最大,为啥截图显示的窗口为1024*663

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium后台执行时,设置窗口最大,为啥截图显示的窗口为1024*663相关的知识,希望对你有一定的参考价值。

大体的结构是selenium和jenkins集成。

在jenkins上面建立了一个windows的slave节点,然后在jenkins的master节点构建项目,让selenium在slave节点的windows服务器上后台运行。

结果发现跑完用例后,有好多报错,显示元素不可见,截图以后,发现窗口是1024*663,而不是预计的1920*1080,所以不拖动滚动条,好多元素点击不到。

怎么能将窗口修改到最大呢?

driver.maximize_window()
options.add_argument("--start-maximized")
都试过了,没有用

我也遇到同样的问题,最后通过driver.set_window_size(win32api.GetSystemMetrics(win32con.SM_CXSCREEN),
win32api.GetSystemMetrics(win32con.SM_CYSCREEN))
设置浏览器窗口大小与屏幕分辨率一致解决此问题,希望能帮到你。
参考技术A 正常来讲最大化的方法应该是可行的:driver.maximize_window()
看下是不是浏览器版本,浏览器驱动版本一致方面的原因本回答被提问者采纳

Python3+Selenium3自动化测试-

完成环境的安装并测试之后,我们对Selenium有了一定的了解了,接下来我们继续驱动浏览器做一些基本操作:

窗口尺寸设置、网页截图、刷新、前进和后退

窗口尺寸设置

在测试过程中,我们可能会要求打开浏览器的窗口处于最大化或者设置为某一特定尺寸的大小,所以我们使用selenium驱动浏览器时设定窗口大小

技术分享图片
# coding=utf-8
 
import time
from selenium import webdriver

driver = webdriver.Chrome() # 启动chrome

def get_size(driver):
    """
    获取窗口尺寸并打印

    """
    size = driver.get_window_size() # 获取窗口尺寸
    print(size) # 打印窗口尺寸
    time.sleep(3) # 暂停3秒

driver.get("https://www.baidu.com") # 打开网页
get_size(driver)
driver.set_window_size(800,600) # 设置窗口尺寸为800*600
get_size(driver)
driver.minimize_window() # 窗口最小化,窗口尺寸未发生变化
get_size(driver)
driver.maximize_window() # 窗口最大化
get_size(driver)

driver.quit() # 停止进程
技术分享图片

 

网页截图

在完成打开网页时,我们对网页内容进行保存的方式的一种就是进行网页截图,webdriver中就提供了截图的选择

技术分享图片
# coding=utf-8

from selenium import webdriver

driver = webdriver.Chrome() # 创建driver对象,启动chrome

driver.get("https://www.baidu.com") # 打开网页
driver.get_screenshot_as_file("D:\screenshot.png") # 截图

driver.quit() # 停止进程
技术分享图片

 

刷新、前进和后退

如同在浏览器中进行常规按钮操作,依次打开多个网页后,需要对网页刷新,返回、前进

技术分享图片
# coding = utf-8

import time
from selenium import webdriver

driver = webdriver.Chrome()

# 打开两个网页
driver.get("https://www.baidu.com") 
time.sleep(3)

driver.back() # 后退
time.sleep(1)
driver.forward() # 前进
time.sleep(1)

# 对网页进行刷新
driver.refresh()

driver.quit()

以上是关于selenium后台执行时,设置窗口最大,为啥截图显示的窗口为1024*663的主要内容,如果未能解决你的问题,请参考以下文章

Python3+Selenium3自动化测试-

selenium获取元素

当窗口在 Chrome 87 的后台时,Webdriver.io/Selenium 测试失败

如何在不调整窗口大小的情况下使用 Java 在 Selenium Webdriver 中捕获屏幕截图 [重复]

python3+selenium入门16-窗口截图

Selenium WebDriver 可以在后台静默打开浏览器窗口吗?