【发布时间】:2021-05-11 02:32:36
【问题描述】:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# define path of driver
driver = webdriver.Chrome()
def mainloop():
driver.get("https://www.nitrotype.com/login")
login(username, password)
# LOGGING IN
def login(username, password):
time.sleep(2)
username = driver.find_element_by_id('username')
username.send_keys(username)
time.sleep(1)
password = driver.find_element_by_id('password')
username.send_keys(username)
time.sleep(1)
password.send_keys(password, Keys.RETURN)
mainloop()
当我运行它时,它会显示给我
Traceback (most recent call last):
File "/home/stevek/Projects/Python/nitrotype-bot/main.py", line 25, in <module>
mainloop()
File "/home/stevek/Projects/Python/nitrotype-bot/main.py", line 10, in mainloop
login(username, password)
File "/home/stevek/Projects/Python/nitrotype-bot/main.py", line 17, in login
username.send_keys(username)
File "/home/stevek/.local/lib/python3.9/site-packages/selenium/webdriver/remote/webelement.py", line 478, in send_keys
{'text': "".join(keys_to_typing(value)),
File "/home/stevek/.local/lib/python3.9/site-packages/selenium/webdriver/common/utils.py", line 150, in keys_to_typing
for i in range(len(val)):
TypeError: object of type 'WebElement' has no len()
我很困惑。我没有使用任何 XPath。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.nitrotype.com/login")
username = driver.find_element_by_id('username')
password = driver.find_element_by_id('password')
username.send_keys(username)
password.send_keys(password, Keys.RETURN)
当我不使用像这样的函数时,它会按预期运行。它登录。没有功能。 怎么了? 另外,请注意我用变量替换了所有用户名。
【问题讨论】:
-
在继续之前,我想说一件事。如果您正在尝试创建一个为您进行打字比赛的机器人,我可以向您保证,您将被禁止。我可以这么说,因为我自己也试过这个。我什至将
wpm设置为 65,我认为这是平均水平,但仍然被禁止。小心航行,我的家伙。 -
堆栈跟踪错误消息引用了这行代码:
for i in range(len(val)):,您向我们展示的代码中不存在该代码,因此我们很难提供帮助。另外,您正在将send_keys到username两次 -
@JD2775 如果您查看上面的行,它会告诉您它来自哪里 -
site-packages中的一个文件,这意味着它是 Selenium 的一部分,而不是用户的代码。 -
@MattDMo。啊,我的错。谢谢
-
@BuddyBob 只需使用 pyautogui。
标签: python selenium selenium-webdriver automation