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()
相关推荐
可可南木12 小时前
3070文件格式--21--fixture文件 3
功能测试·测试工具
一只小白00015 小时前
【JVM | 第五篇】—— 深入理解垃圾回收
jvm·测试工具
光影62717 小时前
Python接口自动化测试----Requests库基础入门
开发语言·python·测试工具·pycharm·自动化
J-Tony111 天前
【JVM】JVM调优经验
jvm·测试工具
ClouGence2 天前
不用写 Selenium,零代码的 UI 自动化测试工具!
selenium·测试
pan_junbiao3 天前
Whistle 抓包工具的安装与使用
前端·测试工具·压力测试·抓包
深圳博众测控3 天前
博众测控 | GTEM小室被测设备(EUT)与布局说明
测试工具
ふり4 天前
测试的“三重境界”:黑盒、白盒、灰盒的对比与实践
网络·python·测试工具·需求分析
@zulnger4 天前
selenium 操作浏览器
前端·javascript·selenium