Selenium常用方法

在 Selenium 自动化测试中,常用方法主要围绕浏览器控制 、元素定位 、元素操作 以及等待机制这四大核心模块展开。

浏览器控制方法

主要用于控制浏览器的基本行为和获取页面信息。

方法 功能说明
driver.get(url) 打开指定的网页 URL
driver.maximize_window() 最大化浏览器窗口
driver.refresh() 刷新当前页面
driver.back() / forward() 模拟浏览器的后退与前进
driver.quit() 关闭浏览器并退出 WebDriver 会话
driver.title / current_url 获取当前页面的标题与 URL

元素定位方法

Selenium 提供了多种方式来精准定位页面上的元素(推荐使用 By 类进行定位):

ID 定位:driver.find_element(By.ID, "username")(最常用,速度最快)

Name 定位:driver.find_element(By.NAME, "password")

XPath 定位:driver.find_element(By.XPATH, "//buttontext()='登录'")(功能最强大,可定位复杂元素)

CSS 选择器:driver.find_element(By.CSS_SELECTOR, ".btn-primary")(语法简洁,定位速度快)

链接文本定位:driver.find_element(By.LINK_TEXT, "立即注册")

元素常用操作方法

定位到元素后,可以对元素对象进行以下交互:

输入文本:element.send_keys("自动化测试")(常用于输入框)

点击元素:element.click()(常用于按钮、链接、复选框)

清空内容:element.clear()(输入前先清空,避免默认文本干扰)

获取文本:text = element.text(获取元素的可见文本内容)

获取属性:href = element.get_attribute("href")(获取元素的指定属性值)

状态判断:

element.is_displayed():判断元素是否可见

element.is_enabled():判断元素是否可用(未被禁用)

等待机制方法

为了防止页面加载过慢导致找不到元素报错,等待机制至关重要:

隐式等待:driver.implicitly_wait(10)。全局设置,在查找元素时如果未找到,会默认等待指定的秒数。

显式等待(推荐使用):配合 WebDriverWait 和 expected_conditions,可以精准等待某个条件成立(如元素可见、元素可点击)再继续执行。

综合代码示例

将上述常用方法串联起来,形成一个完整的百度搜索流程:

python 复制代码
`# 1. 启动浏览器
driver = webdriver.Chrome()

try:
    # 2. 浏览器控制:打开网页并最大化
    driver.get("https://www.baidu.com")
    driver.maximize_window()
    
    # 3. 等待机制:显式等待搜索框加载完成(最多等10秒)
    search_box = WebDriverWait(driver, 10).until(
     # 等待并检查 ID 为 kw 的网页元素是否已经加载到了页面的 DOM(文档对象模型)结构中。
        EC.presence_of_element_located((By.ID, "kw"))
    )
    
    # 4. 元素操作:清空、输入文本
    search_box.clear()
    search_box.send_keys("Selenium 常用方法")
    
    # 5. 元素定位与点击:定位搜索按钮并点击
    search_button = driver.find_element(By.ID, "su")
    search_button.click()
    
    # 6. 获取信息:打印当前页面的标题和URL
    print(f"当前页面标题:{driver.title}")
    print(f"当前页面URL:{driver.current_url}")

finally:
    # 7. 退出浏览器
    driver.quit()
相关推荐
释槐鸟~8 小时前
还不知道RIDE工具怎么装吗
测试工具·自动化
有技巧搬砖1 天前
为什么锂电池组的电池老化测试很重要?
测试工具·锂电池·电池老化
蒲公英内测分发1 天前
智能手表卖出去后,包装、说明书和官网里的 App 下载入口怎么统一?
前端·人工智能·测试工具·智能家居·智能硬件·智能手表
蒲公英内测分发1 天前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
无语的小歪歪1 天前
ATF 智测 1.0
python·测试工具·集成测试
SHENGWEI胜为2 天前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
xie881018022 天前
长表格跨页重复表头:排版上的做法
测试工具
老孟说禅2 天前
测试工具示波器的使用
测试工具
步行cgn3 天前
为什么使用接口测试工具?
测试工具
P1Browser3 天前
Puppeteer 与 Selenium 技术对比:多账号自动化管理如何做环境隔离?
selenium·测试工具·自动化