selenium脚本编写及八大元素定位方法

这篇具有很好参考价值的文章主要介绍了selenium脚本编写及八大元素定位方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

selenium脚本编写

上篇文章介绍了selenium环境搭建,搭建好之后就可以开始写代码了

基础脚本,打开一个网址
from selenium import webdriver
driver = webdriver.Chrome()#打开chrome浏览器
driver.get('https://www.baidu.com') #打开百度
打开本地HTML文件

上篇文章我自己写了一个html文件,放在了当前路径下

selenium脚本编写及八大元素定位方法,软件测试,自动化测试,selenium,测试工具

  • 第一种方式

通过绝对路径打开

from selenium import webdriver
driver = webdriver.Chrome()#打开chrome浏览器
driver.get(r'D:\sele_study\2-selenium\day1_sele\test.html')
  • 第二种方式

通过相对路径打开

本质上也是通过方法把相对路径转为绝对路径

#第一种转为绝对路径的方法
from selenium import webdriver
from pathlib import Path#pathlib:路径处理库
driver = webdriver.Chrome()#打开chrome浏览器
html = Path('./test.html')
driver.get(str(html.resolve()))#Path.resolve:该方法将一些的 路径/路径段 解析为绝对路径
 
#第二种转为绝对路径的方法
from selenium import webdriver
import os
html = os.path.abspath('./test.html')#返回绝对路径
driver = webdriver.Chrome()
driver.get(html)
优雅地打开浏览器(with)

用with打开浏览器,不用手工关闭

from selenium import webdriver
from time import sleep
with webdriver.Chrome() as driver:#with上下文管理器,不需要我去关闭
    driver.get('https://www.baidu.com')#打开百度
    sleep(5)#等5秒,自动关闭

认识webdriver对象方法和属性

初识元素定位方法

#祖宗方法 
find_element
#通过class属性的值定位(底层是css)
find_element_by_class_name
#√√√通过css 选择器定位(推荐,最快)
find_element_by_css_selector
#√通过id的值定位(底层是css)
find_element_by_id
#√通过a标签的文本定位(底层是XPATH)
find_element_by_link_text
#通过name属性的值来定位(底层是css)
find_element_by_name  
#通过a标签的部分文本定位(模糊匹配)(底层是XPATH)
find_element_by_partial_link_text
#通过标签名来定位(底层是css)
find_element_by_tag_name
#√√通过xpath方法定位(慢)
find_element_by_xpath            
 
#以下方法的用法同上,只是返回的是一组元素(列表形式)
find_elements                        
find_elements_by_class_name          
find_elements_by_css_selector
find_elements_by_id
find_elements_by_link_text
find_elements_by_name
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_xpath

除了祖宗方法,其他八种定位方式被大家称为‘selenium八大元素定位’

可以配合HTML全局属性介绍来理解这些方法。

HTML全局属性介绍:https://www.w3school.com.cn/tags/html_ref_standardattributes.asp

用法示例
以下方法演示用的是我们上篇文章写的HTML文件

需要的朋友可以去上篇文章复制或公众号后台输入‘html练习’获取源文件

find_element_by_name
通过name属性的值来定位

from selenium import webdriver
from pathlib import Path
from time import sleep
with webdriver.Chrome() as driver:#打开chrome浏览器
    html = Path('./test.html')
    driver.get(str(html.resolve()))#Path.resolve:该方法将一些的 路径/路径段 解析为绝对路径
    driver.find_element_by_name('username').send_keys('admin')
    #找到name的值为'username'的标签,并输入'admin'
    sleep(5)#5秒后关闭

知识点:

1.如果遇到重复的元素,操作的永远是第一个

2.send_keys方法,不会清空原来的内容

  • find_element_by_id

通过id的值定位

from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:
    html = os.path.abspath('./test.html')#获取绝对路径
    driver.get(html)
    driver.find_element_by_id('username').send_keys('admin')
    #找到id的值为'username'的标签,并输入'admin'
    sleep(5)

知识点:

1.id是唯一的

2.可能会变,需要注意识别

3.首字符是数字的要注意css的表达式(后续详细介绍)

  • find_element_by_class_name

通过class属性的值定位

from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:
    html = os.path.abspath('./test.html')#获取绝对路径
    driver.get(html)
    # 1. 输入用户名
    driver.find_element_by_class_name('aa').send_keys('admin')
    #找到class的值为'aa'的标签,并输入'admin'
    # 2. 输入密码
    # driver.find_element_by_class_name('bb cc').send_keys('123456')--错误写法
    driver.find_element_by_class_name('bb').send_keys('pass')
    #找到class的值为'bb'的标签,输入'pass'
    driver.find_element_by_class_name('cc').send_keys('word')
    #找到class的值为'cc'的标签,输入'word'
    sleep(5)

知识点:

1.class也容易重复

2.class ='bb cc'规定元素的一个或多个类名,等同于class1,class2='bb','cc'

所以不能直接用driver.find_element_by_class_name('bb cc')

find_element_by_link_text
通过a标签的全文本定位,需要文本完全匹配

from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:
    html = os.path.abspath('./test.html')#获取绝对路径
    driver.get(html)
    driver.find_element_by_link_text('百度一下,你就不知道').click()
    #找到文本为'百度一下,你就不知道'文本的a标签,并点击
    sleep(5)#等待5秒关闭
 
  • find_element_by_partial_link_text

通过a标签的部分文本定位(模糊匹配)

#方法二:模糊匹配
from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:
    html = os.path.abspath('./test.html')#获取绝对路径
    driver.get(html)
    driver.find_element_by_partial_link_text('必应').click()
    #找到包含'必应'文本的a标签,并点击
    sleep(5)#等待5秒关闭
 

知识点:

1.link_text 的两种定位方式只适用于a标签的文本

2.link_text 完全匹配

3.parti_link_text 部分(模糊)可以是开头是、包含、结尾是

4.click()点击

find_element_by_tag_name
通过标签名来定位,因为重复特别多,所以很少用,不做介绍。

find_element_by_css_selector
通过css 选择器定位(推荐,最快)

内容比较多且重要,之后单独文章做介绍。

find_element_by_xpath
通过xpath方法定位

内容比较多且重要,之后文章单独介绍。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

selenium脚本编写及八大元素定位方法,软件测试,自动化测试,selenium,测试工具

文档获取方式:
 
加入我的软件测试交流群:1007119548免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取文章来源地址https://www.toymoban.com/news/detail-794953.html

到了这里,关于selenium脚本编写及八大元素定位方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【selenium模块-WEB自动化】八大网页元素定位方法(三)

    一、id 定位 标签的 id 具有唯一性,就像人的身份证。 二、name 定位 name 指定标签的名称,在页面中可以不唯一。 三、class 定位 class 指定标签的类名,在页面中可以不唯一。 四、tag 定位 每个 tag 往往用来定义一类功能,所以通过 tag 来识别某个元素的成功率很低,每个页面

    2024年02月15日
    浏览(50)
  • Python+selenium自动化八大元素定位方法及实例(超详细)

    目录 一、selenium模块中的find_element_by_id方法无法使用 二、Python+selenium自动化八大元素定位方法 使用场景: 1、通过id属性定位:driver.find_element(By.ID,\\\"value\\\") 2、通过name属性定位:driver.find_element(By.NAME,\\\"value\\\") 3、通过class属性定位:driver.find_element(By.CLASS_NAME,\\\"value\\\") 4、通过tag_name属

    2024年02月19日
    浏览(47)
  • 软件测试/测试开发丨Selenium的常用元素定位方法

    Selenium是一个流行的开源框架,目前在 Web 自动化方面运用最为广泛的一个开源、无浏览器要求、可支持多语言、设计测试用例非常灵活的自动化测试框架。支持多种编程语言,并且能够模拟用户操作,例如点击、输入、提交等等。 在Selenium中,元素定位是一个非常重要的步骤

    2024年01月16日
    浏览(63)
  • Selenium(一):八大元素定位

    find_element() 中 类型为空,默认为By.ID

    2024年04月23日
    浏览(72)
  • selenium的八大元素定位方式

    1、什么是元素定位 根据元素的 某个特征 在网页中找到对应的元素,定位元素的目的是为了操作元素,在Web自动化中,定位元素是后续一切操作的前提条件。 2、元素的八大定位方式 2.1、id : 根据标签/元素的id属性值定位 一般情况下元素的id是唯一的,所以通过这个方法可

    2024年03月14日
    浏览(48)
  • 2.Python中selenium八大元素定位

    目录 如何进行元素定位 浏览器开发者工具介绍 一、id属性定位 二、name定位 三、class_name定位 四、tag_name定位 五、link_text定位 六、partail_link_text定位 七、xpath定位 7.1 选取节点 7.2 谓语 7.3 轴 7.4 函数 7.5 逻辑运算 八、css定位 8.1 css的定义 8.2 css定位策略 1.id选择器 2.class选择器

    2024年02月04日
    浏览(45)
  • 【web自动化】selenium+python八大元素定位

    推荐:b站软件测试老白 注意点 1.有id才能能使用id定位 2.id不能重复 通过百度页面,演示如何查找id确定id是否重复,其他方式定位也可以这样搜索 代码如下(示例): 如果有多个class_name,可以使用 find_elements 和取下标的方式 例如:打开哔哩哔哩页面,有番剧,电影等等,他

    2024年01月21日
    浏览(82)
  • 【selenium】八大元素定位方式|xpath css id name...

    目录 一、基础元素定位 二、cssSelector元素定位——通过元素属性定位 三、xpath元素定位——通过路径  1 、xpath绝对定位 (用的不多) 缺点:一旦页面结构发生变化(比如重新设计时,路径少两节),该路径也随之失效,必须重新写 2、 xpath相对定位 2.1  路径解释: 2.2  定

    2024年02月22日
    浏览(53)
  • 【软件测试】selenium中元素的定位

    不管用那种方式,必须保证页面上该属性的唯一性 CSS(Cascading Style Sheets) 是一种语言,它被用来描述 HTML 和 XML 文档的表现。 CSS 使用选择器来为页面元素绑定属性。这些选择器可以被 selenium 用作另外的定位策略 CSS 的获取可以用 chrome 的 F12 开发者模式中 Element- 右键 -copy-cop

    2024年02月16日
    浏览(43)
  • 自动化测试之八大元素定位方式(python3.10+selenium4)

    元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。 系统环境 Windows 11 📌 python3.10.5 🔖 selenium 4.8.0 🚩 注意:以下每种定位方式均有一

    2024年02月03日
    浏览(75)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包