You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium 4自动化登录测试无法运行,请求技术协助

问题解决步骤

1. 修复ChromeDriver初始化问题

Selenium 4 推荐用 webdriver-manager 自动管理驱动,避免版本不匹配或路径错误。先安装依赖:

pip install webdriver-manager

修改初始化代码:

from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

2. 修复登录按钮定位错误

By.CLASS_NAME 不支持多个空格分隔的类名,改用 By.CSS_SELECTOR 定位:

driver.find_element(By.CSS_SELECTOR, "button.oxd-button.oxd-button--medium.oxd-button--main.orangehrm-login-button").click()

或者简化为:

driver.find_element(By.CSS_SELECTOR, "button.orangehrm-login-button").click()

3. 添加显式等待,避免元素未加载完成

页面渲染延迟会导致直接查找元素失败,添加显式等待确保元素可交互:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待用户名输入框出现并输入
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "username"))).send_keys("Admin")
# 等待密码输入框出现并输入
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "password"))).send_keys("admin123")
# 等待登录按钮可点击后点击
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.orangehrm-login-button"))).click()

4. 修复变量名拼写错误

代码中 expected_age_title 是拼写错误,改为:

expected_page_title = "OrangeHRM"
if captured_page_title == expected_page_title:

5. 优化浏览器关闭逻辑

用 driver.quit() 替代 driver.close(),确保彻底关闭浏览器进程:

driver.quit()

完整修正后的代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化Chrome驱动
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://opensource-demo.orangehrmlive.com/")

# 等待并输入用户名
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "username"))).send_keys("Admin")
# 等待并输入密码
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "password"))).send_keys("admin123")
# 等待并点击登录按钮
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.orangehrm-login-button"))).click()

# 验证页面标题
captured_page_title = driver.title
expected_page_title = "OrangeHRM"

if captured_page_title == expected_page_title:
    print("Test PASSED!")
else:
    print("Test FAILED!")

# 关闭浏览器
driver.quit()

内容的提问来源于stack exchange,提问作者Prashant Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:35:12