0


Selenium框架详解一

Selenium是一个用于Web应用程序测试的工具,直接在浏览器运行,就像真实用户所做的一样。支持浏览器包括Chrom,Firefox,Safari,IE;支持脚本语言包括Java,C,Python,Javascript,Ruby,PHP等。

Selenium主要通过使用WebDriver支持所有主要浏览器的自动化,使不同的浏览器后端能够透明地使用,从而实现跨浏览器和跨平台的自动化。WebDriver是一种API和协议,定义了用于控制Web浏览器行为的接口。每个浏览器都由一个特定的WebDriver支持,称为驱动程序。
驱动程序是负责委托给浏览器的组件,并处理Selenium与浏览器之间的通信。

1.Selenium工作原理

selenium主要分成三部分,脚本文件、webdriver、浏览器。脚本文件用于启动webdriver,充当服务器,然后发出请求,webdriver解析请求信息,启动浏览器,执行用户请求。

在这里插入图片描述

2. 安装

  1. pip install selenium

3. 安装浏览器驱动

Selenium通过WebDriver支持所有主流浏览器,Chrome/Chromium、Firefox、Internet Explorer、Edge 和 Safari。
关于驱动程序的下载,大家可参考selenium官网。

3.1 驱动管理软件

大多数机器会自动更新浏览器,但驱动程序不会。为确保获得正确的浏览器驱动程序,可使用有关第三方库。

  1. from selenium import webdriver
  2. from selenium.webdriver.chrom.service import Service
  3. from webdriver_manager.chrome import ChromeDriverManager #导入WebDriver管理器,其他浏览器替换即可#使用install获取管理器使用的位置,将其传递给服务类
  4. service = Service(executable_path=ChromeDriveManager().install())#初始化驱动时使用Service实例
  5. driver = webdriver.Chrome(service=service)

3.2 硬编码位置

此方法需要手动指定驱动程序位置。

  1. from selenium.webdriver,chrom.service import Service
  2. from selenium import webdriver
  3. #executable_path指定本地驱动程序路径
  4. service = Service(executable_path='/path/to/chromedriver')
  5. driver = webriver.Chrom(service=service)

4. selenium简单使用

Selenium通过发送浏览器命令来做某事或进行信息请求,下面介绍使用selenium涉及到的完整流程。

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.chrome.service import Service as ChromeService
  4. from webdriver_manager.chrome import ChromeDriverManager
  5. #①初始化驱动
  6. driver = webdriver.Chrome(service=ChromeService(executable_path=ChromeDriverManager().install()))#②发送请求
  7. driver.get("https://www.selenium.dev/selenium/web/web-form.html")#③请求浏览器多种类型的信息,包括窗口句柄、浏览器大小/位置、cookie
  8. title = driver.title
  9. #④建立等待策略,在使用selenium与浏览器交互过程中,容易出现两者不同步的现象,为实现状态同步,使用隐式等待。
  10. driver.implicitly_wait(0.5)#⑤定位元素。实现元素交互,先定位元素
  11. text_box = driver.find_element(by=By.NAME, value="my-text")
  12. submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")#⑥对元素采取行动,如点击,发送文本等
  13. text_box.send_keys("Selenium")
  14. submit_button.click()#⑦请求元素信息
  15. message = driver.find_element(by=By.ID, value="message")
  16. value = message.text
  17. #⑧结束会话。将结束驱动程序进程,默认情况下会关闭浏览器。
  18. driver.quit()

关于每个部分的详解后续进行。

selenium框架详解二

标签: selenium chrome firefox

本文转载自: https://blog.csdn.net/weixin_48030475/article/details/127252042
版权归原作者 hj_caas 所有, 如有侵权,请联系我们删除。

“Selenium框架详解一”的评论:

还没有评论