为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MYYA 2023-08-22 17:13:35
你好,因为 Instagram API 不再工作了,但我仍然想要一个 Instagram 机器人,我开始了自己的小项目。一切都很顺利,直到我遇到了一件非常有趣的事情。当我单击上传图片按钮时,会出现文件对话框,这也是计划好的,然后我想做的是模拟按键,所以没什么特别的(也在我的脚本中稍早做了一点)但是出于什么原因我的python当涉及到文件对话框时,脚本只是停止,没有错误或其他任何内容,脚本也仍然处于活动状态,只是不想转到下一行。from selenium import webdriverfrom time import sleepimport keyboardfrom selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome()driver.get("https://instagram.com")sleep(2)#login into Accountusername = 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 hereusername.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 partuploadPictureBtn = 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')
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

该页面“坐立”是因为 selenium 无法处理上传窗口,为此,您需要使用 AutoIt(如果您在 Windows 上)或 Robot Framework 来处理该问题。过去它也可以在输入文件上使用 send_keys 方法。

查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信