【问题标题】:selective screen capture code for python,seleniumpython,selenium的选择性屏幕捕获代码
【发布时间】:2019-04-15 02:17:19
【问题描述】:

需要特定屏幕截图的帮助以获取图形屏幕截图(通过 java 脚本创建后端)。

我知道我们可以通过 id 获取元素,但我遇到了新的麻烦。

通过保存全屏并裁剪它尝试了其他方式,但裁剪功能仍然出错

“TypeError:crop() 接受 1 到 2 个位置参数,但给出了 5 个”

但我可以在网上看到可以传递四个参数的代码

我的代码

enter code here

from selenium import webdriver
from PILLOW import Image
driver = webdriver.Chrome("C:\Selenium_Project\driver\chromedriver")
driver.get('https://python.org')
driver.save_screenshot("screenshot1.png")

im = Image.open('\Selenium_Project\screenshot1.png')

width,height=im.size
left= width/4
top= height/4
right = 3 * width/4
bottom = 3 * height/4

im = im.crop(left, top, right, bottom)

im.save('/Automation_project\Selenium_Project\screenshot1.png')
driver.close()
driver.quit()

如果有人可以通过 id 函数帮助 findelement 也会有所帮助。

真的需要帮助,伙计们。干杯

【问题讨论】:

  • 用一个额外的括号找到错误解决方案 im = im.crop((left, top, right, bottom)) 但仍然需要通过 id 查找元素来找到每个元素的大小

标签: javascript python-3.x selenium-webdriver takesscreenshot


【解决方案1】:

你可以通过 id 找到一个元素

image = driver.find_element_by_id('myId')

或者

image = driver.find_element_by_css_selector('#myId')

一旦你找到它,你可以得到element size

size = image.size

【讨论】:

  • 非常感谢,使用它,问题是元素是否不是当前屏幕(必须滚动才能截取屏幕截图..example driver.execute_script("document.body.style.zoom='60%' ") driver.execute_script("window.scrollTo(0, 500)") 然后从那里计算 x,y,width,height),但喜欢直接在该元素的页面位置移动以截取屏幕截图
猜你喜欢
  • 2013-10-08
  • 2011-10-13
  • 2017-10-21
  • 1970-01-01
  • 2012-05-11
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 2016-12-31
相关资源
最近更新 更多