Selenium是一个用于自动化Web应用程序测试的开源工具集,它提供了一组工具和库,使开发人员能够模拟用户与Web应用程序的交互,以进行自动化测试、Web应用程序的自动化操作和数据提取。Selenium支持多种编程语言,包括Python、Java、C#等,但最常见的用法之一是使用Python进行Web自动化。
一、组件工具
主要组件和工具包括:
-
Selenium WebDriver:这是Selenium的核心组件,它提供了API来编写脚本和程序,以模拟用户在Web浏览器中的操作。您可以使用WebDriver来打开浏览器、导航到网页、查找和操作页面上的元素,以及执行各种操作,如单击、输入文本等。
-
Selenium IDE:一个浏览器插件,用于录制和回放用户在浏览器中的操作,以便创建自动化测试脚本。Selenium IDE通常用于快速生成测试脚本,但它的功能有限,主要用于初步测试脚本的创建。
-
Selenium Grid:Selenium Grid允许在多个计算机上并行运行测试,这对于大规模测试和跨不同浏览器和操作系统的测试非常有用。它允许将测试任务分发到多个节点,并从中心控制台监视和管理。
-
Selenium支持多种浏览器:Selenium支持各种主要Web浏览器,包括Chrome、Firefox、Safari、Edge等。每个浏览器都有对应的浏览器驱动程序,用于与浏览器进行通信和控制。
-
多语言支持:Selenium支持多种编程语言,使开发人员可以使用自己熟悉的语言来编写测试脚本。常见的支持语言包括Python、Java、C#、Ruby等。
Selenium通常用于自动化测试、网站数据抓取、Web应用程序的自动化操作和用户界面(UI)测试。开发人员和测试人员可以使用Selenium来自动执行各种任务,如功能测试、性能测试、回归测试等,以确保Web应用程序的质量和稳定性。
要开始使用Selenium,您需要安装相应的浏览器驱动程序、选择编程语言并编写自动化脚本来模拟用户操作。这样,您可以执行测试、执行Web任务或自动执行其他与Web应用程序相关的任务。
二、 基本使用
-
安装Selenium :在终端中使用pip安装Selenium:
pip install selenium
-
导入必要的库:
from selenium import webdriver
-
创建WebDriver对象:您可以使用不同的浏览器驱动程序创建WebDriver对象,如Chrome、Firefox、Edge等。
driver = webdriver.Chrome() # 使用Chrome浏览器
-
打开网页:
driver.get("https://www.example.com") # 打开网页
-
定位元素:可以使用各种方法来定位页面元素,如ID、名称、XPath、CSS选择器等。
element = driver.find_element_by_id("element_id") # 通过ID定位元素
-
与元素交互:
-
element.click() # 单击元素
-
element.send_keys("Hello, World!") # 在输入框中输入文本
-
-
等待元素加载:使用显式等待等待元素出现或满足特定条件。
-
from selenium.webdriver.support.ui import WebDriverWait
-
from selenium.webdriver.common.by import By
-
from selenium.webdriver.support import expected_conditions as EC
-
element = WebDriverWait(driver, 10).until(
-
EC.presence_of_element_located((By.ID, "element_id"))
-
)
-
-
浏览器操作:
-
driver.back() # 后退
-
driver.forward() # 前进
-
driver.refresh() # 刷新页面
-
-
处理多窗口和框架:
-
driver.switch_to.window(driver.window_handles[1]) # 切换到新窗口
-
driver.switch_to.default_content() # 切回主文档
-
-
截图:
driver.save_screenshot("screenshot.png") # 保存屏幕截图
-
关闭和退出:
-
driver.close() # 关闭当前窗口
-
driver.quit() # 退出驱动程序
二 、自动登录
以下代码实现了自动打开浏览器,提交用户密码登录的逻辑,如果需要其他处理逻辑,可自行添加
-
import time
-
from selenium import webdriver
-
from selenium.webdriver.common.by import By
-
# 初始化ChromeDriver实例
-
driver = webdriver.Chrome()
-
# 导航到目标网站
-
driver.get("http://网站.com")
-
# 找到并输入用户名和密码
-
username = driver.find_element(By.CSS_SELECTOR, '.selectBox input[placeholder="请输入账号"]')
-
password = driver.find_element(By.CSS_SELECTOR, '.selectBox input[placeholder="请输入密码"]')
-
# 输入用户名,密码
-
username.send_keys("账户")
-
password.send_keys("密码")
-
#登录
-
button = driver.find_element(By.CSS_SELECTOR, ".submitButtom")
-
button.click()
-
# 测试是否成功 程序结束推出
-
time.sleep(100)
-
# 关闭浏览器
-
driver.quit()
Selenium 还引入了更多功能,如改进的相对定位、集成DevTools协议、通过JavaScript执行操作等。您可以查看Selenium的官方文档以获取更多信息和详细用法示例:https://www.selenium.dev/documentation/en/
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取