51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

如何用python得到手机端页面的完整截图?

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:47
  • 签到天数: 528 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2021-7-13 13:48:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点

    我想要用python获取一个手机端页面完整的长截图。我用了mobile emulation来设置长和宽。这个页面太长了,我hardcode去获取了固定的数值。

    现在设定的宽是375,长是22000,但如果是这么设定的话,我会得到以下这个报错"Time out receiving a message from the renderer"。

    现在有两个问题让我感到困惑:

    • 我是把固定的长和宽的数值放在mobile emulation里的,且长的值特别大,这也做的对的吗?
    • driver.set_window_size(width, height-1800) 我不确定这一行代码是否需要改成driver.set_window_size(width, height)或者别的?

    下面是比较完整的代码,如果有什么问题的话,请随时告诉我,先谢啦!

    1. def save_screenshot(url):
    2.          mobile_emulation = {
    3.             "deviceMetrics": { "width": 375, "height": 22000, "pixelRatio": 3.0 },
    4.             "userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) "
    5.                          "AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile
    6.                           Safari/535.19" }
    7.         chrome_options = webdriver.ChromeOptions()
    8.         chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
    9.         chrome_options.add_argument("start-maximized")
    10.         chrome_options.add_argument("enable-automation")
    11.         chrome_options.add_argument("--headless")
    12.         chrome_options.add_argument("--no-sandbox")
    13.         chrome_options.add_argument("--disable-infobars")
    14.         chrome_options.add_argument("--disable-dev-shm-usage")
    15.         chrome_options.add_argument("--disable-browser-side-navigation")
    16.         chrome_options.add_argument("--disable-gpu")
    17.         driver = webdriver.Chrome(chrome_options=chrome_options)
    18.         driver.get(url)
    19.         driver.implicitly_wait(5)
    20.         width = driver.execute_script("return document.documentElement.scrollWidth")
    21.         height = driver.execute_script("return document.documentElement.scrollHeight")
    22.         print(width,height)
    23.         driver.set_window_size(width, height-1800)
    24.         time.sleep(1)
    25.         driver.save_screenshot(NAME)
    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    10 小时前
  • 签到天数: 1518 天

    连续签到: 2 天

    [LV.Master]测试大本营

    2#
    发表于 2021-7-14 10:30:52 | 只看该作者
    长度太长了,增加等待时间
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 753 天

    连续签到: 2 天

    [LV.10]测试总司令

    3#
    发表于 2021-7-14 10:52:01 | 只看该作者
    参考下这个链接  https://www.jb51.net/article/168609.htm
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 1803 天

    连续签到: 2 天

    [LV.Master]测试大本营

    4#
    发表于 2021-7-14 13:45:11 | 只看该作者
    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    5#
    发表于 2021-7-14 15:09:26 | 只看该作者
    adb shell /system/bin/screencap -p /sdcard/screenshot.png
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 993 天

    连续签到: 2 天

    [LV.10]测试总司令

    6#
    发表于 2021-7-14 16:47:56 | 只看该作者
    滚动截长屏
    回复

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-19 20:23 , Processed in 0.064384 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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