如何将我的 Instagram 与 selenium BOT 连接?

问题描述 投票:0回答:1

我希望你是对的。

我写信给社区是因为我用selenium创建了一个BOT来连接instagram配置文件,但目前我的代码在连接用户名和密码时出现错误。当 Instagram 的窗口打开用户名时,它可以正确写入,但密码也可以使用相同的字符,例如:登录:用户名密码

我希望我能找到有人能告诉我我的代码有什么问题并找出答案:

driver.get("https://www.instagram.com/") 
time.sleep(5)
username=driver.find_element(By.CSS_SELECTOR, "input[name='username']")
password=driver.find_element(By.CSS_SELECTOR, "input[name='password']")

username.clear()
password.clear()
username.send_keys("username")
time.sleep(3)
password.send_keys("password")
login = driver.find_element(By.CSS_SELECTOR,"button[type='submit']").click()

THE ERROR MESSAGE THAT I HAVE : 

ElementNotInteractableException           Traceback (most recent call last)
Cell In[49], line 23
     21 time.sleep(3)
     22 password.send_keys("password")
---> 23 login = driver.find_element(By.CSS_SELECTOR,"button[type='submit']").click()
     26 #driver.quit()

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/selenium/webdriver/remote/webelement.py:93, in WebElement.click(self)
     91 def click(self) -> None:
     92     """Clicks the element."""
---> 93     self._execute(Command.CLICK_ELEMENT)

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/selenium/webdriver/remote/webelement.py:394, in WebElement._execute(self, command, params)
    392     params = {}
    393 params["id"] = self._id
--> 394 return self._parent.execute(command, params)

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py:344, in WebDriver.execute(self, driver_command, params)
    342 response = self.command_executor.execute(driver_command, params)
    343 if response:
--> 344     self.error_handler.check_response(response)
    345     response["value"] = self._unwrap_value(response.get("value", None))
    346     return response

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py:229, in ErrorHandler.check_response(self, response)
    227         alert_text = value["alert"].get("text")
    228     raise exception_class(message, screen, stacktrace, alert_text)  # type: ignore[call-arg]  # mypy is not smart enough here
--> 229 raise exception_class(message, screen, stacktrace)

ElementNotInteractableException: Message: 
python macos selenium-webdriver safari instagram
1个回答
0
投票
    当找到一个元素时会引发
  • ElementNotInteractableException
    ,但它不处于可以交互的状态,例如隐藏或禁用,并且
    button[type='submit']
    ,可能是当您尝试时登录按钮当前不可交互单击它。
  • 在找到并单击登录按钮之前添加
    wait
    sleep
    。这将确保按钮在尝试与其交互之前处于
    visible and enabled
    状态。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Wait for the login button to be clickable
login_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']")))
login_button.click()

或者您也可以使用

time.sleep()

© www.soinside.com 2019 - 2024. All rights reserved.