Python + Selenium 入门教程:Web 主动化测试快速入门
Python + Selenium 入门教程:Web 主动化测试快速入门Selenium 是一个非常盛行的 Web 主动化测试工具,广泛应用于主动化浏览器操作、爬虫开发以及 Web 应用程序的功能测试等范畴。与 Python 联合使用时,Selenium 提供了简朴且强大的功能,使得主动化测试变得更加高效。
本教程将带你相识如何使用 Python 和 Selenium 举行 Web 主动化测试的根本操作。
1. 安装和配置
1.1 安装 Python 和 Selenium
首先,确保你已经安装了 Python。假如尚未安装,可以从 Python 官方网站 下载并安装。
然后,通过 pip 安装 Selenium 库:
pip install selenium
1.2 安装 WebDriver
Selenium 需要一个 WebDriver 来与浏览器举行交互。不同的浏览器有不同的 WebDriver。常见的浏览器和其对应的 WebDriver 包罗:
[*]Chrome: ChromeDriver
[*]Firefox: GeckoDriver
[*]Edge: EdgeDriver
在这里,以 Chrome 为例:
[*]访问 ChromeDriver 下载页面,下载与当前 Chrome 浏览器版本匹配的 ChromeDriver。
[*]解压下载的文件,并将 chromedriver.exe 文件地点的路径添加到系统环境变量中,或在代码中直接指定路径。
2. 使用 Selenium 举行浏览器主动化
2.1 启动浏览器
我们首先用 Selenium 启动一个浏览器并打开一个网页。
from selenium import webdriver
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 打开一个网页
driver.get("https://www.baidu.com")
# 等待 5 秒钟,查看浏览器
import time
time.sleep(5)
# 关闭浏览器
driver.quit()
在上述代码中,我们首先导入了 webdriver,然后用 webdriver.Chrome() 启动了一个 Chrome 浏览器,并用 get() 方法打开了 Google 的首页。
2.2 查找页面元素
Selenium 提供了多种方法来定位网页元素。常见的定位方法有:
[*]by ID: find_element_by_id()
[*]by Name: find_element_by_name()
[*]by Class Name: find_element_by_class_name()
[*]by XPath: find_element_by_xpath()
[*]by CSS Selector: find_element_by_css_selector()
示例:通过 ID 查找元素
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 打开 Google 首页
driver.get("https://www.google.com")
# 查找搜索框,输入文本
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium")
# 提交搜索
search_box.submit()
# 等待 5 秒钟查看结果
import time
time.sleep(5)
# 关闭浏览器
driver.quit()
在这段代码中,我们通过 find_element(By.NAME, "q") 定位到 Google 的搜索框,并使用 send_keys() 方法输入搜索内容,末了通过 submit() 方法提交搜索。
2.3 模拟点击操作
我们可以模拟点击网页上的元素,例如按钮、链接等。
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 打开网页
driver.get("https://www.example.com")
# 查找并点击链接
link = driver.find_element(By.LINK_TEXT, "More information...")
link.click()
# 等待 5 秒钟
import time
time.sleep(5)
# 关闭浏览器
driver.quit()
在上述代码中,find_element(By.LINK_TEXT, "More information...") 查找一个链接,并用 click() 模拟点击。
2.4 实行 JavaScript 脚本
Selenium 还答应实行 JavaScript 脚本,例如获取页面的标题,大概直接在页面上实行一些操作。
from selenium import webdriver
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 打开网页
driver.get("https://www.example.com")
# 执行 JavaScript 脚本,获取页面标题
title = driver.execute_script("return document.title;")
print(f"页面标题是: {title}")
# 关闭浏览器
driver.quit()
通过 execute_script() 方法,你可以实行 JavaScript 脚本并返回结果。
2.5 等候页面加载
在主动化脚本中,页面加载的时间可能不一致。因此,使用 Selenium 的 显式等候 或 隐式等候 可以确保元素已经加载完毕。
隐式等候
隐式等候会在查找元素时等候肯定的时间,直到元素可用为止。
from selenium import webdriver
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 设置隐式等待时间为 10 秒
driver.implicitly_wait(10)
# 打开 Google 首页
driver.get("https://www.google.com")
# 查找搜索框
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium")
# 提交搜索
search_box.submit()
# 关闭浏览器
driver.quit()
显式等候
显式等候答应你设置特定的条件,直到条件满足才继承实行。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 打开 Google 首页
driver.get("https://www.google.com")
# 显式等待直到搜索框可用
search_box = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.NAME, "q"))
)
# 输入搜索内容并提交
search_box.send_keys("Python Selenium")
search_box.submit()
# 关闭浏览器
driver.quit()
3. Selenium 的常用操作总结
[*]启动浏览器: webdriver.Chrome() / webdriver.Firefox() 等。
[*]打开网页: get() 方法。
[*]查找元素: find_element() 或 find_elements() 方法。
[*]输入文本: send_keys() 方法。
[*]模拟点击: click() 方法。
[*]实行 JavaScript: execute_script() 方法。
[*]等候元素加载: 隐式等候和显式等候。
[*]关闭浏览器: quit() 方法。
4. 总结
通过本教程,你已经学习了如何使用 Python 和 Selenium 举行 Web 主动化操作。我们从基础的浏览器启动、元素查找、表单输入,到模拟点击和等候机制,都做了详细的讲解。
在实际应用中,Selenium 可以或许资助我们实现 Web 应用程序的主动化测试和数据抓取等功能。希望你能通过本教程快速入门,动手尝试不同的主动化场景。
假如你有任何题目,欢迎在评论区留言,我会尽快复兴你!
这篇教程可以资助初学者明白和掌握 Python + Selenium 的基础内容。假如有更复杂的需求,你也可以根据实际情况扩展内容。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]