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. 安装

pip install selenium

3. 安装浏览器驱动

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

3.1 驱动管理软件

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

from selenium import webdriver
from selenium.webdriver.chrom.service import Service
from webdriver_manager.chrome import ChromeDriverManager  #导入WebDriver管理器,其他浏览器替换即可

#使用install获取管理器使用的位置,将其传递给服务类
service = Service(executable_path=ChromeDriveManager().install())   

#初始化驱动时使用Service实例
driver = webdriver.Chrome(service=service)

3.2 硬编码位置

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

from selenium.webdriver,chrom.service import Service
from selenium import webdriver

#executable_path指定本地驱动程序路径
service = Service(executable_path='/path/to/chromedriver')
   
driver = webriver.Chrom(service=service) 

4. selenium简单使用

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

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

#①初始化驱动
driver = webdriver.Chrome(service=ChromeService(executable_path=ChromeDriverManager().install()))   

#②发送请求
driver.get("https://www.selenium.dev/selenium/web/web-form.html")

#③请求浏览器多种类型的信息,包括窗口句柄、浏览器大小/位置、cookie等
title = driver.title

#④建立等待策略,在使用selenium与浏览器交互过程中,容易出现两者不同步的现象,为实现状态同步,使用隐式等待。
driver.implicitly_wait(0.5)

#⑤定位元素。实现元素交互,先定位元素
text_box = driver.find_element(by=By.NAME, value="my-text")
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")

#⑥对元素采取行动,如点击,发送文本等
text_box.send_keys("Selenium")
submit_button.click()

#⑦请求元素信息
message = driver.find_element(by=By.ID, value="message")
value = message.text

#⑧结束会话。将结束驱动程序进程,默认情况下会关闭浏览器。
driver.quit()

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

selenium框架详解二

猜你喜欢

转载自blog.csdn.net/weixin_48030475/article/details/127252042
今日推荐