点击、输入、清空及可见性判断等元素交互操作
演示 Selenium 与页面元素交互的 核心 7 个方法,覆盖点击、输入、查询三大场景。操作前必须先定位元素:用 find_element(By.ID/XPATH/CSS, ...) 获取 WebElement 对象。
el.click() → 点击。被遮挡时抛 ElementClickInterceptedExceptionel.send_keys("text") → 追加输入,不是替换!要替换先 clear()el.clear() → 清空输入框el.submit() vs el.click() vs el.send_keys(Keys.ENTER):三种表单提交方式行为不同el.is_displayed() → 元素在视口可见吗?含 display:none/visibility:hidden/宽高为0el.is_enabled() → disabled 属性,按钮变灰点不动el.get_attribute("value") → 读 value,不是 el.text!find_element / click / send_keys / clear / is_displayed / get_attribute / text
# 快速参考 username = driver.find_element(By.ID, "username") username.clear() username.send_keys("test_user") assert username.is_displayed() login_btn = driver.find_element(By.ID, "login_btn") login_btn.click() assert "登录成功" in driver.page_source
find_element(By.ID, "username") 定位输入框,clear() 清空后 send_keys("test_user") 输入内容is_displayed() 断言输入框可见,避免对隐藏元素误操作click() 点击 #login_btn 按钮,断言按钮 disabled 属性变为 true、页面出现「登录成功」文本
操作步骤:
① 用 driver.find_element(By.ID, "username") 找到输入框,clear() 后 send_keys("test_user");
② 用 is_displayed() 断言输入框可见;
③ 点击 #login_btn 按钮;
④ 断言页面中出现预期的提示文本(如"登录成功"或按钮的 disabled 属性变 true)。
# 练习 6 参考答案 from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() # 请替换为包含上述迷你表单的测试页面 URL driver.get("https://你的测试页面URL") # ① 定位 + 操作前先断言可见 username_input = driver.find_element(By.ID, "username") assert username_input.is_displayed(), "username 输入框不可见" # ② 清空 + 输入 username_input.clear() username_input.send_keys("test_user") # ③ 点击登录按钮 login_btn = driver.find_element(By.ID, "login_btn") login_btn.click() # ④ 断言结果(按钮 disabled 属性变 true 或提示文本) assert login_btn.get_attribute("disabled") == "true", "登录按钮未被禁用" page_text = driver.page_source assert "登录成功" in page_text, "页面未出现「登录成功」" driver.quit() print("✅ 练习 6 所有断言通过!")