积木工具箱 发表于 2021-1-19 12:39

请问html 滚动条隐藏的那部分高度怎么获取

找了一天了,最近在用谷歌无头浏览器截屏,但是截图不到滚动条隐藏的部分,只能先拿到显示区域加上隐藏的那部分高度,然后设置屏幕高度,但是找了很久找不到滚动条隐藏的那部分高度怎么获取

_知鱼之乐 发表于 2021-1-19 13:20

滚动容器的子项高度 - 滚动容器本身的高度 ?

pinesnow 发表于 2021-1-19 13:33

可以获取html标签的高度,如下是一个pyhton3.9版本下的示例代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options as ChromeOptions

chrome_options = ChromeOptions()
# chrome_options.headless = True

driver = webdriver.Chrome(options=chrome_options)
driver.get("https://learnxinyminutes.com/docs/python/")
html = driver.find_element_by_tag_name("html")

print(f"{html.size = }")

结果会输出html.size = {'height': 15513, 'width': 1491},然后再将这个设置成浏览器高度,然后再截图就OK了

积木工具箱 发表于 2021-1-19 15:08

本帖最后由 积木工具箱 于 2021-1-19 15:13 编辑

pinesnow 发表于 2021-1-19 13:33
可以获取html标签的高度,如下是一个pyhton3.9版本下的示例代码
from selenium...
您好,感谢您的回答,我试过这样,理论上应该没问题,但他还是会出现滚动条,https://www.apple.com.cn/,这个网址您试试

pinesnow 发表于 2021-1-19 17:17

积木工具箱 发表于 2021-1-19 15:08
您好,感谢您的回答,我试过这样,理论上应该没问题,但他还是会出现滚动条,https://www.apple.com.cn/ ...

这种方式只能在无头浏览器模式下进行,所以如果有界面会自动变成有滚动条的,把我代码里注释掉的那一行打开就变成无头模式了,然后获取截图就是整个网页

积木工具箱 发表于 2021-1-19 18:08

pinesnow 发表于 2021-1-19 17:17
这种方式只能在无头浏览器模式下进行,所以如果有界面会自动变成有滚动条的,把我代码里注释掉的那一行打 ...

我这边就是无头浏览器里处理的,我指的有滚动条是会有一部分被隐藏了

pinesnow 发表于 2021-1-19 19:13

重新设置浏览器大小后苹果这个网站会重新渲染除刚开始加载的时候的那一部分,加载的时候网页大小会变化,如果你针对某一个特定的网页的话,就给第一次获取到的html大小加固定的数字,如果是不指定的网页的话就设置屏幕大小之后再获取一次HTML大小,然后再设置一次高度吧,反正我暂时是这么解决的,也不知道是不是重新渲染的原因

积木工具箱 发表于 2021-1-19 19:51

pinesnow 发表于 2021-1-19 19:13
重新设置浏览器大小后苹果这个网站会重新渲染除刚开始加载的时候的那一部分,加载的时候网页大小会变化,如 ...

对的,我这边就是按您说的二次加载,确实解决了,但只是对苹果这个官网有效,我这边需求网页是用户定的,这个问题我折腾好几天了,还是没有找到一个完美的版本,非常感谢您的解答
页: [1]
查看完整版本: 请问html 滚动条隐藏的那部分高度怎么获取