使用 selenium 和 python 截取屏幕截图

Take screenshot with selenium and python

我尝试制作一个可以抓取 Instagram 的脚本。

目前我只是打开并使用我的脚本登录 insta。

我想截屏,但当他必须截取脚本时我的脚本关闭了,而且我的文件夹中没有 JPG 图片

这是我的代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.keys import Keys
import time 

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
dt = driver.get("https://www.instagram.com")
content = driver.find_element_by_css_selector('body > div.RnEpo.Yx5HN._4Yzd2 > div > div > button.aOOlW.bIiDR')
content.click()
time.sleep(10)
element_username = driver.find_element_by_name("username")
element_username.send_keys("mail")
time.sleep(5)
element_password = driver.find_element_by_name("password")
element_password.send_keys("password")
time.sleep(5)
element_clique = driver.find_element_by_css_selector('#loginForm > div.qF0y9.Igw0E.IwRSH.eGOV_._4EzTm.kEKum > div:nth-child(3) > button > div')
element_clique.click()
time.sleep(5)
element_clique_bt1 = driver.find_element_by_css_selector('#react-root > section > main > div > div > div > div > button')
element_clique_bt1.click()
time.sleep(15)
element_clique_bt2 = driver.find_element_by_css_selector('body > div.RnEpo.Yx5HN > div > div > div > div.mt3GC > button.aOOlW.HoLwm')
element_clique_bt2.click()
time.sleep(25)
element_clique_bt3 = driver.find_element_by_css_selector('.XTCLo')
element_clique_bt3.send_keys("#survivalism", Keys.ENTER)
element_clique_bt4 = driver.find_element_by_css_selector('#fcc4df1f5d15e > div > div')
element_clique_bt4.click()
driver.get_screenshot_as_file("LambdaTestVisibleScreen.png") 

time.sleep(50)

我的变量驱动有问题吗?

get_screenshot_as_file(filename)将当前window的截图保存为PNG图片file.This方法returnsFalse如果有IOError,否则returnsTrue.

但是,还建议在文件名中使用完整路径,而不是 JPG 文件,您必须查找 PNG 文件。所以实际上你的代码行将是:

driver.get_screenshot_as_file("/path/to/LambdaTestVisibleScreen.png") 

参考

您可以在以下位置找到一些相关的详细讨论:

  • Selenium returning a false after screenshot being captured