自动化测试(二)selenium八大获取元素方法及对象操作

这篇具有很好参考价值的文章主要介绍了自动化测试(二)selenium八大获取元素方法及对象操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

webdriver API

脚本实例

元素的定位

1. 通过id定位:

2. 通过name方式定位

3. 通过tag name(标签名)定位

4. 通过class name (类名)方式定位

5. 通过CSS 方式定位

6. 通过xpath方式定位

7. link text定位

8. Partial link text 定位

操作测试对象

 鼠标点击与键盘输入

submit 提交表单

text 获取元素文本


上一篇主要讲解了自动化测试的环境。最后用 IDE 生成了一个样例。这节课将详细的介绍 webdriver 的常用的API🤦‍♀️
selenium+python环境没有配置好的可以先看我上两篇配置环境噢。
selenium环境配置: 自动化测试(一)配置selenium环境(带图文,防止踩坑)-CSDN博客
python环境配置: 自动化测试(前奏)Python环境配置教程(带图文)-CSDN博客

webdriver API

脚本实例

一个简单自动化脚本的构成:
# coding = utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver =webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(3)
driver.find_element(By.ID,'kw').send_keys('软件测试')
time.sleep(3)
driver.find_element(By.ID,'su').click()
time.sleep(3)
driver.quit()
脚本解析:
coding = utf-8
防止乱码,在编辑器里面可以不用加,因为编辑器默认的就是 UTF-8 模式。
from selenium import webdriver
导入 webdriver 工具包,这样就可以使用里面的 API
driver =webdriver.Chrome()
获得被控制浏览器的驱动,这里是获得Chrome 的,当然还可以获得其他 浏览器,不过要想使这一段代码有效,必须安装相应的浏览器驱动。
driver.get('http://www.baidu.com')

打开百度这个网址。

driver.find_element(By.ID,'kw').send_keys('软件测试')

根据id寻找kw这个元素,在百度里面,这个kw的元素是搜索框,然后send_keys是输入指令,输入“软件测试”

driver.find_element(By.ID,'su').click()

这一段是根据id找到su这个按钮,click代表点击

driver.quit()

关闭浏览器

总结上面代码的逻辑是,在百度中搜索“软件测试”,并点击搜索按钮

driver.close()

 上面一行代码也能够关闭窗口,和quit的区别是:

close 方法关闭当前的浏览器窗口, quit 方法不仅关闭窗口,还会彻底的退出 webdriver ,释放与 driverserver之间的连接。所以简单来说 quit 是更加彻底的 close quit 会更好的释放资源。

元素的定位

对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这个人。
那么一个对象也有类似的属性,我们可以通过这些属性找到这对象。
注意:不管用那种方式,必须保证页面上该属性的唯一性
webdriver 提供了一系列的对象定位方法,常用的有以下几种:
id
name
class name
link text
partial link text
tag name
xpath
css selector
我们可以看到,一个百度的输入框,可以用这么多种方式去定位。
<input type="text" class="s_ipt" name="wd" id="kw" 
maxlength="100" autocomplete="off">

1. 通过id定位:

        id是页面元素的属性,我们最常用元素定位方式,但是不是所有的元素都有 id 的。如果一个元素有 id 属 性,那么一般在整个页面是唯一的。所以我们一般可以用id 来唯一的定位到这个元素。
通过前端工具,例如 Chrome 浏览器的 F12 ,找到了百度输入框的属性信息,如下:
<input type="text" class="s_ipt" name="wd" id="kw" 
maxlength="100" autocomplete="off">
属性 id=”kw” ,通过下面这行代码就能定位到输入框。
driver.find_element(By.ID,'kw').send_keys('软件测试')

2. 通过name方式定位

如果这个元素有 name ,并且元素的 name 命名在整个页面是唯一的,那么我们可以用 name 来定位这个元素。
用上面百度输入框的例子,其中元素的属性 name=”wd”
通过driver.find_element(By.NAME,'wd')函数同样也可以定位到百度输入框
driver.find_element(By.NAME,'wd').send_keys('软件测试')

3. 通过tag name(标签名)定位

从上面的百度输入框的属性信息中,我们看到,不单单只有 id name 两个属性, 比如 class tag

name(标签名) input 就是一个标签的名字,而class="s_ipt"是类名。

在这里要注意的是,不是所有的元素用 tag name或者 class name来定位元素,首先要保证该元素的这两种属性在页面上是唯一的,才能够精准定位。

driver.find_element(By.TAG_NAME,'input').send_keys('软件测试')

注意:上面这个可能执行不成功,因为标签名可能不唯一🤦‍♀️

4. 通过class name (类名)方式定位

driver.find_element(By.CLASS_NAME,'s_ipt').send_keys('软件测试')

5. 通过CSS 方式定位

CSS(Cascading Style Sheets) 是一种语言,它被用来描述 HTML XML 文档的表现。
CSS 使用选择器来为页面元素绑定属性。这些选择器可以被 selenium 用作另外的定位策略。

CSS 的比较灵活可以选择控件的任意属性,上面的例子中:driver.find_element(By.CSS_SELECTOR,'#kw')选择取百度输入框的id 属性来定义

CSS 的获取可以用 chrome F12 开发者模式中 Element- 右键 -copy-copy selector 来获取
driver.find_element(By.CSS_SELECTOR,'#kw').send_keys('软件测试')

6. 通过xpath方式定位

什么是XPathhttp://www.w3.org/TR/xpath/

XPath 基础教程: http://www.w3schools.com/xpath/default.asp
XPath 是一种在 XML 文档中定位元素的语言。因为 HTML 可以看做 XML 的一种实现,所以 selenium 用 户可是使用这种强大语言在web 应用中定位元素。
XPath 扩展了上面 id name 定位方式,提供了很多种可能性。
XPATH 的获取可以用 chrome F12 开发者模式中 Element- 右键 -copy-copy xpath 来获取
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys('软件测试')

7. link text定位

有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过链接内容,也就是 link text 来定位。
需要注意的是链接内容必须这个页面唯一,否则会报错。
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.find_element(By.LINK_TEXT,"hao123").click()
browser.quit()

8. Partial link text 定位

通过部分链接定位,这个有时候也会用到,拿上面的例子,我可以只用链接的一部分文字进行匹配:
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.find_element(By.PARTIAL_LINK_TEXT,"hao123").click()
browser.quit()

操作测试对象

前面讲到了不少知识都是定位元素,定位只是第一步,定位之后需要对这个元素进行操作。是鼠标点击还是键盘输入,或者清除元素的内容,或者提交表单等。这个取决于定位元素需要进行的下一步操作。
webdriver 中比较常用的操作对象的方法有下面几个:
1. click 点击对象
2. send_keys 在对象上模拟按键输入
3. clear 清除对象输入的文本内容
4. submit 提交
5. text 用于获取元素的文本信息

 鼠标点击与键盘输入

#coding=utf-8
from selenium import webdriver
import time

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(2)
driver.find_element(By.ID,"kw").send_keys("test")
time.sleep(2)
driver.find_element(By.ID,"kw").clear()
driver.find_element(By.ID,"kw").send_keys("selenium")
time.sleep(2)
#通过submit() 来操作
driver.find_element(By.ID,"su").submit()
time.sleep(3)
driver.quit()
click() 用于点击一个按钮。
clear() 用于清除输入框的内容,比如百度输入框里默认有个 请输入关键字 的信息,再比如我们的登录框一般默认会有“ 账号 ”“ 密码 这样的默认信息。 clear 可以帮助我们清除这些信息。

submit 提交表单

打开百度搜索页面,按钮 百度一下 元素的类型 type=“submit” ,所以把 百度一下 的操作从 click 换成 submit 可以达到相同的效果:
driver.find_element(By.ID,"su").submit()

text 获取元素文本

text 用于获取元素的文本信息
#coding=utf-8
from selenium import webdriver
import time

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(2)
#id = cp 元素的文本信息
data=driver.find_element(By.ID,"bottom_layer").text
print(data) #打印信息
time.sleep(3)
driver.quit()
输出:
©2018 Baidu 使用百度前必读 意见反馈 京ICP证030173号

本节就到这里啦,你们的支持就是我前进的动力,希望大家多多支持噢🤦‍♀️🤦‍♂️🤷‍♀️🤷‍♂️🎈文章来源地址https://www.toymoban.com/news/detail-771772.html

到了这里,关于自动化测试(二)selenium八大获取元素方法及对象操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web自动化测试理论之selenium八大定位 -(2)

    概念:通过元素的id属性来定位元素。 前置:所要定位的元素必须有id属性 方法:driver.find_element_by_id(id属性值) 概念:通过元素的name属性来定位元素。 前置:所要定位的元素必须有name属性。 方法:driver.find_element_by_name(name属性值) 特点:当前页面可以重复 由于name属性值可以

    2024年02月09日
    浏览(82)
  • 【selenium自动化测试】如何定位页面元素,及对页面元素的操作方法

    selenium元素定位 ​selenium定位元素的方式有8种。 fild_element(by,value):by表示使用的定位方式,定位方式可以参见By类。value表示值,例如:根据id定位 By.ID,value=id属性的值。该方法返回元素对象,返回值如下: 这个返回结果说明:返回值为WebElement类的对象,元素在使用方法时

    2024年02月10日
    浏览(68)
  • 自动化测试学习(六)-selenium定位元素之CSS选择器详细用法

    目录 1.通过class属性定位 2.通过id属性定位 3.通过标签名定位 4.其他方法定位    CSS是一种语言,它可以比较灵活的选择控件的任意属性,一般情况下比Xpath快,下面我们详细介绍CSS的用法。CSS常见语法如下表所示:  选择器 示例 描述 .class .s_ipt 选择class=\\\"s_ipt\\\"的所有元素 #i

    2024年01月17日
    浏览(52)
  • Selenium元素定位全攻略,让你轻松玩转自动化测试!

    一、什么是元素定位 元素定位就是查找HTML元素的过程,操作页面元素之前,首先要对元素进行定位,所以定位是自动化脚本编写的开始。 通常使用find_element或find_elements方法来定位元素(find_element 使用给定的方法定位和查找一个元素;find_elements 使用给定的方法定位和查找所

    2024年02月04日
    浏览(46)
  • python+selenium的web自动化测试之8种元素定位方式详解

    目录 前言 单一属性定位 通过元素的id 通过元素的name 通过元素的class 通过元素的标签名 通过元素的超链接文本 通过元素的部分超链接文本 XPTH定位 CSS定位 辅助定位工具 ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确

    2023年04月16日
    浏览(60)
  • 基于Java+Selenium的WebUI自动化测试框架(一)---页面元素定位器

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 对于自动化测试,尤其是UI的自动化测试。是很多做黑盒功能测试的同

    2024年03月17日
    浏览(67)
  • Web自动化测试-如何进行Selenium页面数据及元素交互?教你一步不漏。

      目录 前言: 一、Selenium简介 二、安装Selenium 1.Windows用户安装Selenium 2.安装Chrome浏览器驱动 三、使用Selenium进行页面数据及元素交互 1.启动浏览器

    2024年02月07日
    浏览(51)
  • 【selenium】自动化测试中,元素无法点击定位等问题的解决:js的使用方法

    在自动化测试中经常会遇到使用selenium方法定位元素点击操作失败的情况,例如,我们想实现在浏览器输入http://www.baidu.com,进入百度首页后,鼠标悬停在“更多产品”上,点击“全部产品” 若不使用js的话,代码应该如下图所示: 我们执行代码后,发现会报错 我们该如何解

    2024年02月08日
    浏览(48)
  • 『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?

    在了解元素等位前,我们先了解下 app 的一些类型,只有了解这些 app 的类型才能针对性的选择元素定位方法; 因为不同类型的app的定位方式可能存在差异性; 我们了解到 APP 可以分为原生 APP 、 Web APP 、混合 APP 。 而原生 APP 是基于 Android 或 iOS 平台官方的语言、类库、工具

    2024年02月03日
    浏览(52)
  • 〖Python WEB 自动化测试实战篇⑦〗- 实战 - selenium的基本元素操作与键盘鼠标模拟事件操作

    订阅 Python全栈白宝书-零基础入门篇 可报销! 白嫖入口-请点击我。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏, 免费阶段订阅数量4300+ , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:加入社区的小伙

    2023年04月08日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包