首页 > 解决方案 > Python 和 Selenium WebDriver 未在正确的文本框中输入文本

问题描述

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

gif显示问题

我已经尝试了各种解决方案,到目前为止,唯一成功的方法是使用 javascript 来填充框,但是这种方法非常笨拙,并且“登录”按钮无法点击,所以如果我能得到这个方法上班我会很开心。

这是我的代码:

#!/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")

预先感谢您的任何帮助!

标签: seleniumselenium-webdriverpython-3.8

解决方案


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


推荐阅读