当按下 Web 按钮时 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')


MYYA
浏览 159回答 1
1回答

慕标5832272

该页面“坐立”是因为 selenium 无法处理上传窗口,为此,您需要使用 AutoIt(如果您在 Windows 上)或 Robot Framework 来处理该问题。过去它也可以在输入文件上使用 send_keys 方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python