【发布时间】:2022-01-27 11:54:32
【问题描述】:
我正在尝试查找并填写 Instagram 登录页面的用户名和密码:
from selenium.webdriver.common.keys import Keys
import os
from selenium import webdriver
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'Chromedriver')
driver = webdriver.Chrome(executable_path = filename)
driver.get("https://www.instagram.com")
username = driver.find_element_by_name("username")
password = driver.find_element_by_name("password")
username.send_keys("blankspace")
password.send_keys("blankspace")
但是,我不断收到错误消息,即使名称正确,它也无法检测到元素
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="username"]"}
HTML:
<input aria-label="Phone number, username, or email" aria-required="true" autocapitalize="off" autocorrect="off" maxlength="75" name="username" type="text" class="_2hvTZ pexuQ zyHYP" value="">
【问题讨论】:
-
@Joel 这个问题根本不涉及获取源代码。
-
尝试调试驱动程序看到的 HTML 源代码docs。 Instagram 很有可能检测到您不是人类,并在您查看页面之前询问您一些验证码。因为你的代码是合理的,否则。
-
@edd 你似乎是对的,它不要求验证码,但页面会在你到达页面后加载大部分元素,所以我添加了
time.sleep(5),然后尝试查找元素它有效。