前言
安装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年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-5BZHVTxP-1713014457516)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!