Selenium 知识点详解:从基础操作到代码实战

在自动化测试领域,Selenium 是一款备受瞩目的工具。

 

一、Selenium 简介

 

Selenium 是一个用于 Web 应用程序测试的工具,它支持多种浏览器和编程语言,能模拟用户在浏览器上的各种操作,如点击、输入文本等,从而实现对 Web 应用的自动化测试,帮助开发者快速发现潜在问题,提高开发效率。

 

 

二、环境配置

 

要使用 Selenium,需先进行环境配置。以 Python 为例,首先需安装 Selenium 库,可通过 pip install selenium 命令实现。接着要下载对应的浏览器驱动,如 Chrome 浏览器需下载 ChromeDriver,确保驱动版本与浏览器版本相匹配,并将驱动路径添加到系统环境变量中,这样 Python 脚本就能调用 Selenium 和浏览器驱动来控制浏览器了。

 

 

三、基础操作

 

 

  1. 打开浏览器:

 

 

```python

from selenium import webdriver

 

# 打开 Chrome 浏览器

driver = webdriver.Chrome()

# 打开指定网址

driver.get("https://www.baidu.com")

```

 

 

运行上述代码,会自动打开 Chrome 浏览器并访问百度首页。

 

  2. 定位元素:

 

定位元素是 Selenium 操作网页元素的前提。常见的定位方式有 id、name、class name、xpath、css selector 等。

例如,通过 id 定位百度搜索框并输入文本:

 

 

```python

# 通过 id 定位元素

element = driver.find_element_by_id("kw")

# 在搜索框中输入内容

element.send_keys("Selenium 自动化测试")

```

 

 

 

  3. 点击操作:

 

 

```python

# 通过 xpath 定位百度搜索按钮并点击

button = driver.find_element_by_xpath("//input[@type='submit']")

button.click()

```

 

 

此代码会触发百度搜索按钮的点击事件,进行搜索操作。

 

 

四、浏览器控制

 

 

  1. 获取当前页面标题:

 

 

```python

# 获取页面标题

title = driver.title

print("页面标题为:", title)

```

 

 

可获取当前页面的标题信息,便于在测试中进行验证。

 

  2. 获取当前页面 URL:

 

 

```python

# 获取当前页面 URL

current_url = driver.current_url

print("当前页面 URL:", current_url)

```

 

 

可用于判断页面跳转是否正确等场景。

 

  3. 页面刷新:

 

 

```python

# 刷新页面

driver.refresh()

```

 

 

模拟用户手动刷新页面的操作,比如验证某些实时更新的内容是否正确加载。

 

 

五、处理弹窗

 

以处理 JavaScript 弹窗为例,使用 alert 对象:

 

  1. 获取弹窗文本:

 

 

```python

# 切换到弹窗

alert = driver.switch_to.alert

# 获取弹窗文本

alert_text = alert.text

print("弹窗文本为:", alert_text)

```

 

 

 

  2. 接受弹窗:

 

 

```python

# 接受弹窗(点击确定按钮)

alert.accept()

```

 

 

 

  3. 关闭弹窗:

 

 

```python

# 关闭弹窗(点击取消按钮)

alert.dismiss()

```

 

 

通过这些操作,可对不同类型的弹窗进行处理,满足自动化测试中对弹窗交互的需求。

 

 

六、表单操作

 

 

  1. 输入文本:

 

 

```python

# 定位用户名输入框并输入文本

username = driver.find_element_by_name("username")

username.send_keys("test_user")

```

 

 

 

  2. 清空文本框:

 

 

```python

# 清空密码输入框

password = driver.find_element_by_name("password")

password.clear()

```

 

 

 

  3. 提交表单:

 

 

```python

# 提交表单

form = driver.find_element_by_id("loginForm")

form.submit()

```

 

 

以上的表单操作示例可用于模拟用户登录等场景,对 Web 表单的自动化测试至关重要。

 

 

七、Cookies 操作

 

 

  1. 获取 Cookies:

 

 

```python

# 获取所有 Cookies

cookies = driver.get_cookies()

print("Cookies 信息:", cookies)

```

 

 

可获取页面的 Cookies 数据,方便进行分析或在测试中进行 Cookies 相关验证。

 

  2. 添加 Cookie:

 

 

```python

# 添加 Cookie

driver.add_cookie({'name': 'mycookie', 'value': '123456'})

```

 

 

 

  3. 删除 Cookie:

 

 

```python

# 删除指定名称的 Cookie

driver.delete_cookie("mycookie")

# 删除所有 Cookies

driver.delete_all_cookies()

```

 

 

Cookies 的操作在处理需要登录状态等场景下非常关键,通过添加或删除 Cookies 可模拟不同用户状态下的页面访问情况。

 

 

八、等待操作

 

 

  1. 隐式等待:

 

 

```python

# 设置隐式等待时间(单位:秒)

driver.implicitly_wait(10)

```

 

 

隐式等待会告诉 Selenium 在寻找元素时,最多等待设定的时间,若在这段时间内元素出现,则继续执行,否则抛出异常。

 

  2. 显式等待:

 

 

```python

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

 

# 显式等待,等待某个元素可见

element = WebDriverWait(driver, 10).until(

    EC.visibility_of_element_located((By.ID, "submitBtn"))

)

```

 

 

显式等待可针对特定条件进行等待,灵活性更高,能更精准地处理页面元素加载时间差异等情况,避免因元素未加载完成导致的测试失败。

 

以上只是 Selenium 部分知识点的分享,通过这些学习和实践,能让我们在 Web 自动化测试领域迈出坚实的一步,随着不断深入学习和探索,还能发现更多 Selenium 的强大功能,助力我们更高效地进行软件测试工作,提升软件质量和开发效率。

 

希望这篇博客能对大家有所帮助,欢迎大家在评论区交流讨论,共同进步。

你可能感兴趣的:(selenium,python,测试工具)