如何选择“使用计算机”选择“选择” Instagram上的按钮,并使用SELENIUM(Python)使用send_keys()方法上传图像

发布于 2025-02-12 17:32:59 字数 3272 浏览 1 评论 0原文

尝试制作与Instagram交互的脚本/机器人(在Debugger模式下打开的Chrome上)并发布图像。

我已经设法使用硒单击[+]按钮,但是我无法处理“从计算机中选择”按钮,并使用send_keys()方法直接发送图像。

[+]签名按钮

从计算机按钮中进行选择

到目前为止的代码:

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

opt = Options()
opt.add_experimental_option("debuggerAddress", "localhost:1124")
driver = webdriver.Chrome(executable_path = "C:\SeleniumDrivers\chromedriver.exe", chrome_options = opt)

uploadbutton = driver.find_element(By.CLASS_NAME, "_acub")
uploadbutton.click()

time.sleep(1)

uploadfile = driver.find_element(By.CSS_SELECTOR, "_acan _acap _acas")
uploadfile.send_keys("C:\\SeleniumDrivers\\ok.png")

发生错误:

c:\Users\arjun\Desktop\Python\InstaBot.py:12: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(executable_path = "C:\SeleniumDrivers\chromedriver.exe", chrome_options = opt)
c:\Users\arjun\Desktop\Python\InstaBot.py:12: DeprecationWarning: use options instead of chrome_options
  driver = webdriver.Chrome(executable_path = "C:\SeleniumDrivers\chromedriver.exe", chrome_options = opt)
Traceback (most recent call last):
  File "c:\Users\arjun\Desktop\Python\InstaBot.py", line 19, in <module>
    uploadfile = driver.find_element(By.CSS_SELECTOR, "_acan _acap _acas")
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 857, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 435, in execute
    self.error_handler.check_response(response)
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"_acan _acap _acas"}
  (Session info: chrome=103.0.5060.66)
Stacktrace:
Backtrace:
        Ordinal0 [0x003B6463+2188387]
        Ordinal0 [0x0034E461+1762401]
        Ordinal0 [0x00263D78+802168]
        Ordinal0 [0x00291880+989312]
        Ordinal0 [0x00291B1B+989979]
        Ordinal0 [0x002BE912+1173778]
        Ordinal0 [0x002AC824+1099812]
        Ordinal0 [0x002BCC22+1166370]
        Ordinal0 [0x002AC5F6+1099254]
        Ordinal0 [0x00286BE0+945120]
        Ordinal0 [0x00287AD6+948950]
        GetHandleVerifier [0x006571F2+2712546]
        GetHandleVerifier [0x0064886D+2652765]
        GetHandleVerifier [0x0044002A+520730]
        GetHandleVerifier [0x0043EE06+516086]
        Ordinal0 [0x0035468B+1787531]
        Ordinal0 [0x00358E88+1805960]
        Ordinal0 [0x00358F75+1806197]
        Ordinal0 [0x00361DF1+1842673]
        BaseThreadInitThunk [0x75216739+25]
        RtlGetFullPathName_UEx [0x77498FEF+1215]
        RtlGetFullPathName_UEx [0x77498FBD+1165]

任何帮助将不胜感激。

Trying to make a script/bot that interacts with Instagram (on chrome opened in debugger mode) after manual login and posts images.

I have managed to click the [+] button using selenium however I cannot deal with the "Select From Computer" button and use the send_keys() method to send images directly.

The [+] sign button

Select From Computer button

code so far:

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

opt = Options()
opt.add_experimental_option("debuggerAddress", "localhost:1124")
driver = webdriver.Chrome(executable_path = "C:\SeleniumDrivers\chromedriver.exe", chrome_options = opt)

uploadbutton = driver.find_element(By.CLASS_NAME, "_acub")
uploadbutton.click()

time.sleep(1)

uploadfile = driver.find_element(By.CSS_SELECTOR, "_acan _acap _acas")
uploadfile.send_keys("C:\\SeleniumDrivers\\ok.png")

the error occurred:

c:\Users\arjun\Desktop\Python\InstaBot.py:12: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(executable_path = "C:\SeleniumDrivers\chromedriver.exe", chrome_options = opt)
c:\Users\arjun\Desktop\Python\InstaBot.py:12: DeprecationWarning: use options instead of chrome_options
  driver = webdriver.Chrome(executable_path = "C:\SeleniumDrivers\chromedriver.exe", chrome_options = opt)
Traceback (most recent call last):
  File "c:\Users\arjun\Desktop\Python\InstaBot.py", line 19, in <module>
    uploadfile = driver.find_element(By.CSS_SELECTOR, "_acan _acap _acas")
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 857, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 435, in execute
    self.error_handler.check_response(response)
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"_acan _acap _acas"}
  (Session info: chrome=103.0.5060.66)
Stacktrace:
Backtrace:
        Ordinal0 [0x003B6463+2188387]
        Ordinal0 [0x0034E461+1762401]
        Ordinal0 [0x00263D78+802168]
        Ordinal0 [0x00291880+989312]
        Ordinal0 [0x00291B1B+989979]
        Ordinal0 [0x002BE912+1173778]
        Ordinal0 [0x002AC824+1099812]
        Ordinal0 [0x002BCC22+1166370]
        Ordinal0 [0x002AC5F6+1099254]
        Ordinal0 [0x00286BE0+945120]
        Ordinal0 [0x00287AD6+948950]
        GetHandleVerifier [0x006571F2+2712546]
        GetHandleVerifier [0x0064886D+2652765]
        GetHandleVerifier [0x0044002A+520730]
        GetHandleVerifier [0x0043EE06+516086]
        Ordinal0 [0x0035468B+1787531]
        Ordinal0 [0x00358E88+1805960]
        Ordinal0 [0x00358F75+1806197]
        Ordinal0 [0x00361DF1+1842673]
        BaseThreadInitThunk [0x75216739+25]
        RtlGetFullPathName_UEx [0x77498FEF+1215]
        RtlGetFullPathName_UEx [0x77498FBD+1165]

Any help would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝不放开 2025-02-19 17:32:59

您可以使用 instagram api 在Instagram上发布,将更加有效,更容易。

you can use Instagram API to post on Instagram, which would be more efficient and easier.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文