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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Web自动化测试Selenium(1)选择元素基本方法-2021-10-07 -> 正文阅读

[系统运维]Web自动化测试Selenium(1)选择元素基本方法-2021-10-07

1. selenium环境安装

Selenium环境的安装主要就是安装两样东西: 客户端库浏览器 驱动

  1. selenium安装 pip install selenium
  2. 浏览器安装 首选谷歌浏览器
  3. 驱动安装 驱动版本要和浏览器版本对应

2. 基本使用

2.1 启动浏览器并搜索网站

在这里插入图片描述

2.2 定位元素

定位元素进行搜索
F12 进入开发者模式,找到Elements

选择页面元素,鼠标右击检查,找对对应语句,然后根据特征进行查找
在这里插入图片描述

下面所有定位元素的方法,返回的对象都是·WebElement对象

2.2.1 根据元素的id 属性选择元素

返回一个元素。可对这个元素进行如click的操作

在这里插入图片描述

浏览器,找到id为kw的元素后,将结果通过 浏览器驱动 返回给 自动化程序, 所以 find_element_by_id 方法会 返回一个 WebElement 类型的对象。这个WebElement 对象可以看成是对应 页面元素 的遥控器。我们通过这个WebElement对象,就可以 操控 对应的界面元素。

比如 :
调用这个对象的 send_keys 方法就可以在对应的元素中 输入字符串,
调用这个对象的 click 方法就可以 点击 该元素
在这里插入图片描述
其中\n相当于回车
那不用回车,用页面按钮的百度一下,就右击,找id,为su在新建一个element查找id=su,然后再进行element.click

2.2.2 根据 class属性选择元素

返回多个元素。可以通过.text获取对应元素的文本
一个元素可由多个class属性,但每次只能指定一个。

在这里插入图片描述
id为唯一标志,返回一个值。选择所有元素,根据class,返回所有文本。

wd.find_elements_by_class_name('animal')

注意

find_elements_by_class_name 方法返回的是找到的符合条件的 所有 元素 (这里有3个元素), 放在一个 列表 中返回。
在这里插入图片描述
首先,大家要注意: 通过 WebElement 对象的 text属性 可以获取该元素 在网页中的文本内容。
所以 下面的代码,可以打印出 element 对应 网页元素的 文本

print(element.text)

在这里插入图片描述
在这里插入图片描述

2.2.3 根据tag属性选择元素

根据标签名进行定位

wd.find_elements_by_tag_name('div')

在这里插入图片描述

2.2.4 通过WebElement对象选择元素

不仅 WebDriver对象有 选择元素 的方法, WebElement对象 也有选择元素的方法。

WebElement对象 也可以调用 find_elements_by_xxx, find_element_by_xxx 之类的方法

WebDriver 对象 选择元素的范围是 整个 web页面, 而

WebElement 对象 选择元素的范围是 该元素的内部。

在这里插入图片描述
在这里插入图片描述

2.3 等待界面元素出现

在这里插入图片描述
在这里插入图片描述
在我们进行网页操作的时候, 有的元素内容不是可以立即出现的, 可能会等待一段时间。因为我们的代码执行的速度比 百度服务器响应的速度快。

解决办法1:用sleep 来 等待几秒钟, 等百度服务器返回结果后,再去选择 id 为1 的元素

# 等待 2 秒
from time import sleep
sleep(2)

存在问题:有可能当前网速过慢,或者百度服务器处在高峰,每次的等待时间不确定,容易出错。

解决方法2:当发现元素没有找到的时候, 并不立即返回 找不到元素的错误。而是周期性(每隔半秒钟)重新寻找该元素,直到该元素找到,或者超出指定最大等待时长,这时才抛出异常(如果是 find_elements 之类的方法, 则是返回空列表)。Selenium 的 Webdriver 对象 有个方法叫implicitly_wait
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:39:50  更:2021-10-09 16:39:54 
 
开发: 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/15 18:55:45-

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