Python + Selenium 入门教程:Web 主动化测试快速入门

打印 上一主题 下一主题

主题 825|帖子 825|积分 2475


Python + Selenium 入门教程:Web 主动化测试快速入门

Selenium 是一个非常盛行的 Web 主动化测试工具,广泛应用于主动化浏览器操作、爬虫开发以及 Web 应用程序的功能测试等范畴。与 Python 联合使用时,Selenium 提供了简朴且强大的功能,使得主动化测试变得更加高效。
本教程将带你相识如何使用 PythonSelenium 举行 Web 主动化测试的根本操作。
1. 安装和配置

1.1 安装 Python 和 Selenium

首先,确保你已经安装了 Python。假如尚未安装,可以从 Python 官方网站 下载并安装。
然后,通过 pip 安装 Selenium 库:
  1. 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 启动一个浏览器并打开一个网页。
  1. from selenium import webdriver
  2. # 启动 Chrome 浏览器
  3. driver = webdriver.Chrome()
  4. # 打开一个网页
  5. driver.get("https://www.baidu.com")
  6. # 等待 5 秒钟,查看浏览器
  7. import time
  8. time.sleep(5)
  9. # 关闭浏览器
  10. 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 查找元素

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. # 启动 Chrome 浏览器
  4. driver = webdriver.Chrome()
  5. # 打开 Google 首页
  6. driver.get("https://www.google.com")
  7. # 查找搜索框,输入文本
  8. search_box = driver.find_element(By.NAME, "q")
  9. search_box.send_keys("Python Selenium")
  10. # 提交搜索
  11. search_box.submit()
  12. # 等待 5 秒钟查看结果
  13. import time
  14. time.sleep(5)
  15. # 关闭浏览器
  16. driver.quit()
复制代码
在这段代码中,我们通过 find_element(By.NAME, "q") 定位到 Google 的搜索框,并使用 send_keys() 方法输入搜索内容,末了通过 submit() 方法提交搜索。
2.3 模拟点击操作

我们可以模拟点击网页上的元素,例如按钮、链接等。
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. # 启动 Chrome 浏览器
  4. driver = webdriver.Chrome()
  5. # 打开网页
  6. driver.get("https://www.example.com")
  7. # 查找并点击链接
  8. link = driver.find_element(By.LINK_TEXT, "More information...")
  9. link.click()
  10. # 等待 5 秒钟
  11. import time
  12. time.sleep(5)
  13. # 关闭浏览器
  14. driver.quit()
复制代码
在上述代码中,find_element(By.LINK_TEXT, "More information...") 查找一个链接,并用 click() 模拟点击。
2.4 实行 JavaScript 脚本

Selenium 还答应实行 JavaScript 脚本,例如获取页面的标题,大概直接在页面上实行一些操作。
  1. from selenium import webdriver
  2. # 启动 Chrome 浏览器
  3. driver = webdriver.Chrome()
  4. # 打开网页
  5. driver.get("https://www.example.com")
  6. # 执行 JavaScript 脚本,获取页面标题
  7. title = driver.execute_script("return document.title;")
  8. print(f"页面标题是: {title}")
  9. # 关闭浏览器
  10. driver.quit()
复制代码
通过 execute_script() 方法,你可以实行 JavaScript 脚本并返回结果。
2.5 等候页面加载

在主动化脚本中,页面加载的时间可能不一致。因此,使用 Selenium 的 显式等候隐式等候 可以确保元素已经加载完毕。
隐式等候

隐式等候会在查找元素时等候肯定的时间,直到元素可用为止。
  1. from selenium import webdriver
  2. # 启动 Chrome 浏览器
  3. driver = webdriver.Chrome()
  4. # 设置隐式等待时间为 10 秒
  5. driver.implicitly_wait(10)
  6. # 打开 Google 首页
  7. driver.get("https://www.google.com")
  8. # 查找搜索框
  9. search_box = driver.find_element(By.NAME, "q")
  10. search_box.send_keys("Python Selenium")
  11. # 提交搜索
  12. search_box.submit()
  13. # 关闭浏览器
  14. driver.quit()
复制代码
显式等候

显式等候答应你设置特定的条件,直到条件满足才继承实行。
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.support.ui import WebDriverWait
  4. from selenium.webdriver.support import expected_conditions as EC
  5. # 启动 Chrome 浏览器
  6. driver = webdriver.Chrome()
  7. # 打开 Google 首页
  8. driver.get("https://www.google.com")
  9. # 显式等待直到搜索框可用
  10. search_box = WebDriverWait(driver, 10).until(
  11.     EC.presence_of_element_located((By.NAME, "q"))
  12. )
  13. # 输入搜索内容并提交
  14. search_box.send_keys("Python Selenium")
  15. search_box.submit()
  16. # 关闭浏览器
  17. 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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表