全网最牛,Web自动化测试Selenium八大元素定位实战(详细)_web自动化selenium实战项目


前言

安装Selenium和下载Driver

安装selenium,使用国内源快速下载

pip3 install selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

下载Driver
打开:http://npm.taobao.org/mirrors/chromedriver/

找到自己Chrome对应的版本下载即可

例子:访问百度

#!/usr/bin/env python

-*- coding: utf-8 -*-

import time

from selenium import webdriver

加载浏览器驱动

driver = webdriver.Chrome(“…/resources/chromedriver.exe”)

访问网址

driver.get(“http://www.baidu.com”)

找到搜索框

inputElement = driver.find_element_by_id(“kw”)

输入搜索内容

inputElement.send_keys(“NBA总决赛”)

找到搜索按钮

searchElement = driver.find_element_by_id(“su”)

点击搜索按钮

searchElement.click()

time.sleep(5)

释放资源, 退出浏览器

driver.quit()

可以看到,流水账式写Web自动化测试代码的顺序就是:加载驱动 - 访问链接 - 页面操作

先将一个测试html保存到本地,后续案例就按照这个页面来演示
代码如下:

八大定位测试演示

用户名:

密码

登录

测试啦

再一次测试啦


终极抗击肺炎啊 抗击肺炎 抗击肺炎
  • 111
  • 222
  • 333
  • aaa
  • bbb
  • ccc

方式1:通过元素的id

找到id = username的元素

username = driver.find_element_by_id(“username”)

输入值 张三

username.send_keys(“张三”)

找到od = password的元素

password = driver.find_element_by_id(“password”)

输入值 123

password.send_keys(“123”)

在前端,一般一个id值是唯一的,只属于一个元素

方式2:通过元素的class

=====通过 元素Class查找(仅返回匹配到的第一个)

login_btn = driver.find_element_by_class_name(“login”)

点击

login_btn.click()

在前端,一般多个元素共用一个class
但 find_element_by_class_name 只返回第一个匹配到class的元素

坏处:当找不到元素则报错
如果想返回所有匹配到class的元素,可看下面代码

=====找到所有class=li的元素

lis = driver.find_elements_by_class_name(“li”)
for i in lis:
print(i.text)

执行结果

111
222
333

返回的是一个元素列表,若只匹配到一个也是列表
好处:当没有找到元素时不会报错,而是返回空列表 []

方式3:通过元素的name

=====通过 元素name查找元素(仅返回匹配到的第一个)

password = driver.find_element_by_name(“password”)

=====输入值 123

password.send_keys(“123”)

和class一样,也有可能有多个元素共用一个name
但 find_element_by_name 只返回第一个匹配到name的元素
想返回多个的话,和class一样,需要调用 find_elements_by_name 方法,这里不再赘述,写法和上面一致(已标红)

方式4:通过元素标签

=通过 元素标签(仅返回匹配到的第一个)=

p = driver.find_element_by_tag_name(“p”)

打印元素的文本值

print(p.text)

print(“===”)

=通过 元素标签(返回匹配到的所有元素)=

ps = driver.find_elements_by_tag_name(“p”)
for p in ps:
print(p.text)

执行结果

测试啦===
测试啦
再一次测试啦

多个元素同种HTML标签见怪不怪了
同样的, find_element_by_tag_name 返回第一个匹配到标签的元素
find_elements_by_tag_name 可以返回所有匹配到标签的元素

方式5:通过超链接文本

=====通过 超链接的文本查找元素(仅支持精确匹配)

atext = driver.find_element_by_link_text(“抗击肺炎”)
print(atext.text)

print(“===”)
ass = driver.find_elements_by_link_text(“抗击肺炎”)
for i in ass:
print(i.text)

执行结果

抗击肺炎===
抗击肺炎
抗击肺炎

find_element_by_link_text 是精确匹配,需要文本完全相同才能匹配
若需要返回全部匹配到的元素,也需要用 find_elements_by_link_text

方式6:通过超链接文本(模糊匹配)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-5BZHVTxP-1713014457516)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值