IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 半个小时带你快速上手【Selenium 4.1 持续更新中...】 -> 正文阅读

[开发测试]半个小时带你快速上手【Selenium 4.1 持续更新中...】

介绍

Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 和 C#欢迎。 Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代 Web 浏览器中运行。在爬虫领域 selenium 同样是一把利器,能够解决大部分的网页的反爬问题,但也不是万能的,它最明显的缺点就是速度慢。




2. 环境搭建


2.1 安装 Selenium

安装方法直接使用pip安装即可,老生常谈了

pip install selenium



2.2 安装浏览器驱动

Selenium 需要一个驱动程序来与所选的浏览器进行交互。所以我们先把驱动安装上,每个浏览器都有对应的驱动。以下列举几个常用的浏览器以及驱动下载地址。

  • Chrome: https://chromedriver.chromium.org/downloads
  • Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
  • Firefox: https://github.com/mozilla/geckodriver/releases
  • Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10/

选择驱动时需要注意版本是否与自己浏览器的版本一致,如果不一致可能会导致报错无法运行。下载完驱动后你可以将它解压出来放入系统的 Path 变量中,或者是 Python 根目录。一切准备就绪我们就开始学习之路吧!




3. 基础操作


这里我先把我的骨架写下来,后面的例子中我就当你们也已经写好了骨架。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

# 创建 Service 对象, 里面的参数是我驱动文件的路径为了图方便我就没配置
service = Service('D:\chromedriv\chromedriver_win32\chromedriver.exe')
# 创建 driver 对象
driver = webdriver.Chrome(service=service)

如果已经配置好了驱动可以直接使用以下骨架

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

# 创建 driver 对象
driver = webdriver.Chrome(service=service)



3.1 访问网址


driver.get('https://www.baidu.com/')
  • get:打开一个网址


3.2 最大化窗口


driver.maximize_window()
  • maximize_window:将浏览器窗口最大化


3.3 刷新网页


driver.refresh()
  • refresh:刷新网页


3.4 回退


driver.back()
  • back:浏览器回退


3.5 前进


driver.forward()
  • forward:浏览器前进


3.6 关闭当前窗口


driver.close()
  • forward:关闭当前窗口


3.7 退出浏览器


driver.quit()
  • quit:当浏览器完成它的任务后自动关闭



4. Driver 常用属性


Driver 的属性是非常多的,但我们用的不是很多下面列举以下比较常用的属性。我会以 (>>>) 表示我运行例子后的结果。


4.1 浏览器名称


print(driver.name)
>>> chrome
  • name:获取当前使用的浏览器名称


4.2 网页URL


print(driver.url)
>>> https://www.baidu.com/
  • url:获取当前网页的网址


4.3 网页标题


print(driver.title)
>>> 百度以下,你知道
  • title:获取当前网页标题


4.4 网页源码


print(driver.page_source)
>>> <html>.....</html>
  • page_source:获取当前网页源代码



5. 元素定位


在开始学习元素定位之前先了解下网页元素,以及属性等,这些知识可以在 w3cschool 简单了解一下即可。在后面的例子中我就默认你们已经了解了这些。

导入所需的类

from selenium.webdriver.common.by import By


5.1 根据 ID 定位


在网页中ID是唯一的不能重复,所以ID查找经常用于定位表单元素等…

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
driver.find_element(by=By.ID, value='kw')
  • by:参数名
  • value:参数值



5.2 根据 NAME 定位


name 属性常见于表单中。

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
driver.find_element(by=By.NAME, value='wd')
  • by:参数名
  • value:参数值



5.3 根据 XPATH 定位


XPath 是一门在 XML 文档中查找信息的语言。如果你没学过呢也不紧因为浏览器可以帮助我们完成这个任务。
在这里插入图片描述

driver.find_element(by=By.XPATH, value='//*[@id="kw"]')
  • by:参数名
  • value:参数值



5.4 根据 Css选择器 定位


在这里插入图片描述

driver.find_element(by=By.CSS_SELECTOR, value='#kw')
  • by:参数名
  • value:参数值



5.5 根据 Class名称 定位


<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
driver.find_element(by=By.CLASS_NAME, value='s_ipt')
  • by:参数名
  • value:参数值



5.6 根据 文字(精准) 定位


查找的文字需要与网页元素完全匹配 在这里插入图片描述

driver.find_element(by=By.LINK_TEXT, value='hao123').click()
  • by:参数名
  • value:参数值
  • click:点击



5.7 根据 文字(模糊) 定位


查找的文字不需要与网页元素完全匹配 在这里插入图片描述

driver.find_element(by=By.PARTIAL_LINK_TEXT, value='123').click()
  • by:参数名
  • value:参数值
  • click:点击



5.8 根据 标签 定位


网页中的标签太多了,这个方法使用的比较少,了解一下就好了。

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
driver.find_element(by=By.TAG_NAME, value='input')
  • by:参数名
  • value:参数值
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:12:52  更:2022-01-24 11:13:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 5:50:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码