python - 如何使用 Python 和 Selenium 填写表格?
问题描述
我是 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(username) NameError: name 'username' is not defined
根据 Firefox 开发者工具,正确的 ID 是“用户名”。
解决方案
您尝试访问的页面需要时间来加载。在访问它之前,您必须等待元素可见。
试试这个:
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")))
推荐阅读
- swift - 使用新图片重新加载表格时自定义表格视图单元格消失
- android - 作为卡在导航栏后面留下的功能的名称是什么
- mongoose - Mongoose:将对象推送到对象数组
- javascript - “for(const [[[[[a, b, c]]]]] in [0, 0]); 怎么样?甚至有效?
- java - (Java) HangMan 游戏:虽然循环逻辑似乎已关闭
- r - 每个 wrld_simpl ISO3 国家/地区的栅格像素值总和
- multithreading - Peewee Sqlite 在内存数据库中的共享
- python - 比较前 2 列中的值并用较低的值填充单元格
- npm - 设置 npm 代理配置时出错
- java - 如果代码已经排序,则尝试测试用户输入代码的时间