Mic*_*air 2 python selenium google-chrome
我正在使用以下代码截取屏幕截图并仅裁剪我想要的元素。但是,由于 Chrome 仅截取视口的屏幕截图,因此顶部数字太大,因为它是从页面顶部开始计算的。有没有办法获得相对于视口的位置?
element = browser.find_element_by_xpath(locator)
browser.save_screenshot('screenshot.png')
location = element.location
size = element.size
im = Image.open('screenshot.png')
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
im = im.crop((int(left), int(top), int(right), int(bottom)))
im.save('screenshot2.png')
Run Code Online (Sandbox Code Playgroud)
我能够通过滚动到元素来使其工作,稍微向上滚动(从标题下方出来),然后获取滚动位置并从顶部数字中减去它
element = browser.find_element_by_xpath(locator)
browser.execute_script("return arguments[0].scrollIntoView();", element)
browser.execute_script("window.scrollBy(0, -150);")
browser.save_screenshot('screenshot.png')
location = element.location
scroll = browser.execute_script("return window.scrollY;")
size = element.size
im = Image.open('screenshot.png')
left = location['x']
top = location['y'] - scroll
right = location['x'] + size['width']
bottom = location['y'] + size['height'] - scroll
im = im.crop((int(left), int(top), int(right), int(bottom)))
im.save('screenshot2.png')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |