Selenium操作浏览器和提交表单的核心是精准定位元素、模拟真实交互及合理处理响应;需用Service+ChromeDriverManager启动驱动,统一使用find_element(By.XXX)定位,结合显式等待触发提交并验证结果。
用 Selenium 操作浏览器和提交表单,核心是找准元素、模拟真实交互、处理页面响应。不靠猜路径,也不硬等时间,关键在等待策略和定位稳定性。
先装好 selenium 和对应浏览器驱动(如 ChromeDriver),推荐用 webdriver-manager 自动管理驱动版本:
pi
p install selenium webdriver-manager
代码示例:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://example.com")
注意:避免直接用已弃用的 executable_path;用 Service + ChromeDriverManager 更可靠。
别只依赖 find_element_by_id(已废弃),统一用 find_element(By.XXX, "value"):
input[type='password'] 或 form#login input:nth-child(2)
//button[contains(text(), '登录')]
输入前建议先清空再 send_keys,防止残留内容干扰:
elem = driver.find_element(By.ID, "username")
elem.clear()
elem.send_keys("testuser")
不是所有表单都靠点击“提交”按钮,要根据页面实际逻辑选对方法:
提交不是终点,得确认是否成功、有没有弹窗、跳转是否完成:
不复杂但容易忽略。