我是Python的新手,想将其用于自动登录。我找到了https://automatetheboringstuff.com/chapter11/并尝试过:
#! python3
from selenium import webdriver
browser = webdriver.Firefox()
type(browser)
browser.get('https://forum-studienstiftung.de/')
emailEl = browser.find_element_by_id(username)
不幸的是,这导致:
回溯(最近一次通话最后一次):文件“”,第1行,在 emailEl = browser.find_element_by_id(用户名)NameError: 名称“用户名”未定义
根据Firefox开发者工具,正确的ID为“用户名”。
答案 0 :(得分:1)
用户名用引号引起来。现在,您要传入一个名为username的变量,硒将尝试与页面上具有相同值的id进行匹配。由于该值为none,Selenium无法找到它,因此是错误。
答案 1 :(得分:1)
您尝试访问的页面需要花费一些时间才能加载。在访问元素之前,您必须等待该元素可见。
尝试:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Firefox()
type(browser)
browser.get('https://forum-studienstiftung.de/')
emailEl = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.id, "username")))