简体   繁体   English

使用 selenium 和 python 截图

[英]Take screenshot with selenium and python

I try to make a script who can scrape Instagram.我尝试制作一个可以抓取 Instagram 的脚本。

For the moment I just open and log into insta with my script.目前我只是打开并使用我的脚本登录到 insta。

I would like to take a screenshot but my script close when he have to take the script and I don't have a JPG image inside my folder我想截屏,但是当他必须截取脚本并且我的文件夹中没有 JPG 图像时,我的脚本关闭了

This is my code:这是我的代码:

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)

Is there something wrong with my variable driver?我的变量驱动程序有问题吗?

get_screenshot_as_file(filename) saves a screenshot of the current window to a PNG image file.This method returns False if there is any IOError , else returns True . get_screenshot_as_file(filename)将当前 window 的屏幕截图保存到 PNG 图像文件。如果有任何IOError ,此方法返回False ,否则返回True

However, it is also suggested to use full paths in the filename and instead of a JPG file you must look for a PNG file.但是,也建议在文件名中使用完整路径,而不是JPG文件,您必须查找PNG文件。 So effectively your line of code will be:因此,您的代码行将是:

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

Reference参考

You can find a couple of relevant detailed discusssions in:您可以在以下位置找到一些相关的详细讨论:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM