selenium - Python 和 Selenium WebDriver 未在正确的文本框中输入文本
问题描述
我正在尝试使用 python 和 selenium 编写一个 instagram 机器人,但我无法让该机器人登录到 instagram。每当它尝试输入用户名和密码登录时,它都会输入用户名,然后进入密码框并输入前两个或三个字符,然后返回并在用户名框中输入其余字符。
我已经尝试了各种解决方案,到目前为止,唯一成功的方法是使用 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")
预先感谢您的任何帮助!
解决方案
好的,所以我只是尝试下载和使用 Firefox,而这似乎已经完成了。我可以在正确的文本框中输入用户名和密码,然后单击登录按钮,现在没有错误,所以我猜想使用 safari 发生了一些事情。我不知道为什么,但现在它正在工作。因此,如果其他人看到此线程并遇到此问题,请尝试使用其他浏览器,因为这似乎对我有用。
推荐阅读
- javascript - Angular 测试,模拟服务,只是构建其他服务
- php - 如何识别调用 API 端点的应用或网站?
- java - Spring JPA 保存并不总是在 DB 上执行
- kotlin - 如何将我作为参数传递的函数定义为可为空的?
- oracle - 从 Oracle 中的一组表中导出数据
- wordpress - 来自wordpress中图像的Url和alt
- angular - 从 main.ts 设置 Angular 环境
- python - Python多处理什么都不做
- swift - 当输入为@Bindable 时,您能否将函数的输出用作@Bindable
- python-3.x - 按对象属性拆分对象列表