如何使用Python和Selenium填写表格?

时间:2019-04-17 23:02:06

标签: python selenium firefox

我是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为“用户名”。

2 个答案:

答案 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")))