Python 和 Selenium WebDriver 未在正确的文本框中输入文本

Python and Selenium WebDriver not entering text in the correct text box

我正在尝试使用 python 和 selenium 编写一个 instagram 机器人,但我无法让该机器人登录 instagram。每当它尝试输入用户名和密码登录时,它都会输入用户名,然后转到密码框并输入前两三个字符,然后返回并在用户名框中输入其余部分。

gif showing the problem

我尝试了各种解决方案,到目前为止,唯一成功的方法是使用 javascript 来填充方框,但该方法非常笨拙,并且 "Log in" 按钮有问题可以点击,所以如果我能让这个方法起作用我会很高兴。

这是我的代码:

#!/usr/bin/env/python3

import time
from selenium import webdriver


class InstaBot:
    def __init__(self, username, passwd):
        self.username = username
        self.passwd = passwd
        self.driver = webdriver.Safari(executable_path="/usr/bin/safaridriver")
        self.driver.get("https://instagram.com")    # load instagram login
        time.sleep(2)
        self.driver.find_element_by_xpath("//input[@name=\"username\"]").send_keys(username)
        self.driver.find_element_by_xpath("//input[@name=\"password\"]").send_keys(passwd)
        # self.driver.find_element_by_xpath('//button[@type="submit"]').click()
        time.sleep(2)
        self.driver.quit()    # close browser window


InstaBot("username", "P4$$w0rd")

提前感谢您的帮助!

好的,所以我只是尝试下载并使用 Firefox,这似乎已经成功了。我可以在正确的文本框中输入用户名和密码,它现在可以毫无错误地单击登录按钮,所以我猜想使用 safari 时发生了一些事情。我不知道为什么,但现在它正在工作。因此,如果其他人看到此线程并遇到此问题,请尝试使用不同的浏览器,因为这似乎对我有用。