我的 Instagram 自动化代码没有将用户名和密码填入登录页面

Posted

技术标签:

【中文标题】我的 Instagram 自动化代码没有将用户名和密码填入登录页面【英文标题】:My Instagram automation code doesn't fill the username and password into login page 【发布时间】:2022-01-22 11:23:19 【问题描述】:

我是编码新手,我开始创建 Instagram 机器人。我的代码打开网页并导航到登录页面,但没有填写用户名和密码的空白。我想使用硒,我尝试了不同的方法,我在这里上传的是最后一个。我不知道这里有什么问题。

from selenium import webdriver
import os 
import time

class InstaBot:

    def __init__(self, username = None, password = None):
       
        self.username = '******'
        self.password = '******'
        self.driver = webdriver.Firefox()
        
        self.login()

    def login(self):
        self.driver.get('https://instagram.com')    

        username_input = self.driver.find_element_by_name('username')
        password_input = self.driver.find_element_by_name('password')

        username_input.send_keys(self.username)
        password_input.send_keys(self.password)
        login_btn.click()

if __name__ == '__main__':
    ig_bot = InstaBot('temp_username', 'temp_password') 

【问题讨论】:

【参考方案1】:

Instagram 网站是由React 元素构建的,因此要将字符序列 发送到您需要为WebDriverWait 诱导element_to_be_clickable() 的元素,您可以使用以下任一种Locator Strategies:

使用CSS_SELECTOR

WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='username']"))).send_keys("limbalu")
self.driver.find_element(By.CSS_SELECTOR, "input[name='password']").send_keys("limbalu")

使用XPATH

WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='username']"))).send_keys("limbalu")
self.driver.find_element(By.XPATH, "//input[@name='password']").send_keys("limbalu")

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

【讨论】:

【参考方案2】:

希望问题解决了。 我已将代码更改为

username_input = self.driver.find_element_by_css_selector("input[name='username']") password_input = self.driver.find_element_by_css_selector("input[name='password']")

它有效!

【讨论】:

您的定位器与我在answer 中建议的定位器有何不同?

以上是关于我的 Instagram 自动化代码没有将用户名和密码填入登录页面的主要内容,如果未能解决你的问题,请参考以下文章

切换用户或使用 Instagram 重新验证

您如何自动滚动 Instagram DM?

Flutter:登录 Instagram 时未获取代码(Instagram 登录不起作用)

打开 Instagram 用户资料

将没有 api 的 Instagram 主题标签 json 放入谷歌表格的问题

没有应用程序可以执行此操作来打开 Instagram URL