当按下web按钮时,Python脚本停止工作

2024-03-29 07:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,因为instagram API不再工作了,但我仍然想要一个instagram机器人,所以我开始了自己的小项目。在我发现一件非常有趣的事情之前,一切都很顺利

当我点击上传图片按钮时,文件对话框出现,这也是计划好的,然后我想做的是模拟按键,所以没有什么特别的(在我的脚本之前也做过),但是出于什么原因,我的python脚本在文件对话框中停止,没有错误或其他任何原因,脚本仍然处于活动状态,只是不想转到下一行

from selenium import webdriver
from time import sleep
import keyboard
from selenium.webdriver.common.action_chains import ActionChains 

driver = webdriver.Chrome()
driver.get("https://instagram.com")

sleep(2)
#login into Account
username = driver.find_element_by_xpath("/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[1]/div/label/input")
password = driver.find_element_by_xpath("/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[2]/div/label/input")
loginBtn = driver.find_element_by_xpath("/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[3]/button")

#put your username and password here
username.send_keys("username")
password.send_keys("pw")
loginBtn.click()
sleep(4)

#----------------------------------

safeLoginDateBTN = driver.find_element_by_xpath("/html/body/div[1]/section/main/div/div/div/div/button")
safeLoginDateBTN.click()
sleep(4)
notNowNotifications = driver.find_element_by_xpath("/html/body/div[4]/div/div/div/div[3]/button[2]")
notNowNotifications.click()
sleep(4)

#now comes the interestig part
#The problem is that there is no instgram API anymore so what are we going to do?
#exactly we are going to say instagram that we are actually a smarthphone so the browser switches to "phone mode"

keyboard.press_and_release('F12')
sleep(2)
keyboard.press_and_release('Cmd+Shift+M')
sleep(2)
driver.refresh()

#now we are in the device mode
#this is a little workaround because the sh*ti instagram api isnt working anymore
#now comes the upload part

uploadPictureBtn = driver.find_element_by_xpath("/html/body/div[1]/section/nav[2]/div/div/div[2]/div/div/div[3]")
uploadPictureBtn.click()


keyboard.press_and_release('PicsForInstagram')
keyboard.press_and_release('Enter')

Tags: andtheimportdivbyhtmldriversection