51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1173|回复: 5
打印 上一主题 下一主题

selenium PhantomJS 截图后的图片分辨率尺寸如何设置

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2022-4-27 10:48:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    项目现在需要python做在线截屏,登陆页面截图是正常尺寸1500-2000(有时候尺寸会不一样,不只为何产生),但是登陆进去后尺寸宽度瞬间变到10015。拉宽了5倍,请问下我可以固定这个尺寸吗。
    目前采用了两个方法没有生效,
    第一个:driver设置了尺寸,1920x1080,但是两个页面似乎都不生效,无论怎么改都不行,宽度小于500后,还会让click方法报错。
    第二个:用了PIL.Image去调整尺寸和分辨率,但是它也只是缩放了图片,分辨率还是以前的。

    [color=rgba(0, 0, 0, 0.75)]左边是登陆页面,右边是登陆后的

    代码如下

    1. # 调用环境变量指定的PhantomJS浏览器,创建浏览器对象
    2.     driver = webdriver.PhantomJS(executable_path="./phantomjs-2.1.1-macosx/bin/phantomjs",
    3.                                  service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any',
    4.                                                '--web-security=false'])
    5.     now = time.time()
    6.     currentTime = now
    7.     # 设置屏幕大小,防止click找不到id
    8.     driver.set_window_size(1920, 1080)
    9.     driver.maximize_window()
    10.     # driver.set_window_size(500, 1080)
    11.     # 设置超时时间,防止已经加载完毕依然在等待(get与click操作等待时长超过1分钟)
    12.     driver.set_page_load_timeout(2)

    13.     # 开始访问页面
    14.     try:
    15.         driver.get(target["url"])
    16.     except TimeoutException:
    17.         driver.execute_script("window.stop")
    18.     now = time.time()
    19.     print("耗时:" + str(now - currentTime))
    20.     currentTime = now
    21.     time.sleep(2)

    22.     # 登陆页面截图
    23.     driver.save_screenshot("./pic/waf/waf_login_empty.png")

    24.     # 输入用户名密码
    25.     driver.find_element_by_id(target["usernameId"]).send_keys(target["username"])
    26.     # time.sleep(4)
    27.     driver.find_element_by_id(target["passwordId"]).send_keys(target["password"])
    28.     driver.save_screenshot("./pic/waf/waf_login.png")

    29.     # 点击登录
    30.     ele = driver.find_element_by_id(target["loginId"])
    31.     now = time.time()
    32.     print("获取login耗时:" + str(now - currentTime))
    33.     currentTime = now

    34.     try:
    35.         ele.click()
    36.     except TimeoutException:
    37.         driver.execute_script("window.stop")

    38.     now = time.time()
    39.     print("click耗时:" + str(now - currentTime))
    40.     currentTime = now
    41.     # driver.find_element_by_xpath("//input[@id='loginButton' and @class='submit'] ").click()
    42.     # driver.find_element_by_xpath('//*[@id="' + target["loginId"] + '"]').click()

    43.     time.sleep(2)

    44.     # 获取新的页面快照
    45.     try:
    46.         driver.get(target["url"])
    47.     except TimeoutException:
    48.         driver.execute_script("window.stop")

    49.     driver.save_screenshot("./pic/waf/index.png")
    50.     # 设置图片尺寸
    51.     indexImage = Image.open("./pic/waf/index.png")
    52.     (x, y) = indexImage.size
    53.     x_s = 2304
    54.     y_s = int(y * x_s / x)
    55.     indexImage.resize((x_s, y_s), Image.ANTIALIAS).save("./pic/waf/index1.png", dpi=(x_s, y_s))
    56.     now = time.time()
    57.     print("图片设置大小耗时:" + str(now - currentTime))

    58.     # 截图相关图片
    59.     dataInfo = target["dataInfo"]
    60.     equ = target["equ"]
    61.     # driver.set_window_size(600, 1080)
    62.     for di in dataInfo:
    63.         for d in di:
    64.             try:
    65.                 driver.find_element_by_id(d).click()
    66.             except TimeoutException:
    67.                 driver.execute_script("window.stop")
    68.             time.sleep(2)
    69.         driver.save_screenshot(equ.value["picPath"] + "/wafversion.png")

    70.     # 打印网页渲染后的源代码
    71.     # print(driver.page_source)
    72.     # 获取当前页面的cookie
    73.     print("cookie:")
    74.     print(driver.get_cookies())

    75.     return True;
    复制代码


    附件: 您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-22 14:23
  • 签到天数: 1007 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2022-4-28 10:04:21 | 只看该作者
    driver.viewportSize={'width':XXX,'height':YYY}  试试可行不?
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 10:15
  • 签到天数: 756 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2022-4-28 10:56:43 | 只看该作者
    等大神
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1521 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2022-4-28 11:22:10 | 只看该作者
    这个是在配置文件里设置的把
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    28 分钟前
  • 签到天数: 2819 天

    连续签到: 1 天

    [LV.Master]测试大本营

    5#
    发表于 2022-4-28 16:43:09 | 只看该作者
    应该可用固定,感觉在操作过程中造成的拉伸
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 08:51
  • 签到天数: 668 天

    连续签到: 6 天

    [LV.9]测试副司令

    6#
    发表于 2022-4-28 17:15:04 | 只看该作者
    分辨率直接在函数里设置
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 07:51 , Processed in 0.066294 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表