小白自学python+selenuim软件测试之路保姆级教学(二)

背景:从0开始学习自动化测试,找一个薪资10k+的工作 分享一下自己学习的过程以及遇到的疑难杂症

第一节我们讲述了如何配置环境,如果环境没有配置的同学,请先配置环境

简单上手初体验自动化测试

一、解决刚打开浏览器闪退问题

安装好环境之后我迫不及待的试了一把,用下面这段代码发现浏览器确实打开了,但是又立即关闭了。(闪退)

python 复制代码
# 从selenium中导出 webdriver
from selenium import webdriver
driver = webdriver.Chrome()
# 打开浏览器并访问url
driver.get("https://www.baidu.com")

经过探索为webdriver加上了option,值为detach:True,解决了 闪退问题。

python 复制代码
# 从selenium中导出 webdriver
from selenium import webdriver
driver = webdriver.Chrome()
option = webdriver.ChromeOptions()
# 为浏览器添加配置,不立即关闭
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=option)
# 访问url链接
driver.get("https://www.baidu.com")

二、seleinum获取元素的方法及用法

下面我们要了解一下selenium中获取页面元素的几种常用的方法: 该部分内容需要具有一点前端知识,知道如何找到元素,不懂也没关系,我来快速教你

每个页面都是由很多个标签组成的,这些标签我们也称之为元素。 我以百度的首页为大家举例讲解。 找元素的步骤:

2.1打开控制台

打开之后按f12,或者快捷键 【Ctrl+shift+C】 再或者右击点击【检查】。会弹出开发者控制台,(mac版没有f12的,先按住左下角fn,touch Bar 上会出现f12点击即可),打开控制台之后点击【Elements/元素】我们会看到如下界面。

上面的<div> <head> <body>就是标签,也就是元素。那么我们如何找到我们想要的元素呢?请接着往下看。

2.2找元素

我们打开控制台之后,会看到控制台左上角有一个箭头的按钮,没错就是它,点击一下变蓝之后就可以找元素了。我们也可以打开控制台之后按【Ctrl+shift+C】打开找元素按钮。

当然上图中的<input>中的 id、class等属性不一定是每个标签都会有的,那如果元素没有这几个属性我们该如何通过selenium来定位元素呢? 接下来邀请我们的获取元素的终极大招XPATH登场 鼠标放到你定位到的元素上,然后右键单击,点击copy,点击copy XPath就可以了~ 具体怎么用,客观请往下面看!

这里我通过不同的方式来获取【百度一下】这个按钮,别的不说,代码展示 列举几个比较常用的,其他的可以自行搜索一下用法。

  1. 通过id获取元素:

    python 复制代码
    element = driver.find_element_by_id('su')
  2. 通过class name获取元素:

    python 复制代码
    element = driver.find_element_by_class_name('s_btn')

3.通过name获取元素:

python 复制代码
 # 因为百度一下这个标签没有name属性,我就用name代替了,找到一个带name属性的标签,替换一下
element = driver.find_element_by_name('name')
  1. 通过XPath获取元素:
python 复制代码
    element = driver.find_element_by_xpath('//*[@id="su"]')

三、自动化测试实战

以百度的搜索举例: 我们在输入框里输入优酷,点击搜索后,找到优酷的元素,如果找到证明这条测试用例通过,找不到用例失败

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By


option = webdriver.ChromeOptions()
# 为浏览器添加配置,不立即关闭
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=option)
# 访问url链接
driver.get("https://www.baidu.com")
# 隐式等待  访问页面时可能加载过慢,导致不能立即获取到元素,可以等待30s来等待加载
driver.implicitly_wait(30)
# 获取输入框元素
inputweb = driver.find_element(By.XPATH, '//*[@id="kw"]')
# 给输入框输入值
inputweb.send_keys("优酷")
# 获取搜索的按钮
btn = driver.find_element(By.XPATH, '//*[@id="su"]')
# 点击按钮搜索
btn.click()
try:
    # 找到优酷的元素
    ele = driver.find_element(By.XPATH, '//*[@id="1"]/div/div[1]/h3')
    print(ele)
    # 设置断言,点击后肯定会找到这个元素,如果为空,就是没有通过
    assert ele != None
    print('测试通过')
except Exception:
    print('这里出错了')
# 运行完毕后把进程清除掉
driver.quit()
相关推荐
安冬的码畜日常4 天前
【玩转 Postman 接口测试与开发2_007】第六章:Postman 测试脚本的创建(下):预请求脚本及环境变量在多个请求自动运行中的应用
测试工具·postman·测试·runner·api测试·自动测试
北京_宏哥10 天前
《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作
python·前端框架·测试
kida_yuan12 天前
【从零开始】6. RAG 应用性能压测工具(番外篇)
后端·llm·测试
孤蓬&听雨17 天前
Kafka自动生产消息软件(自动化测试Kafka)
分布式·kafka·自动化·测试·生产者
帅得不敢出门20 天前
Python+Appium+Pytest+Allure自动化测试框架-安装篇
python·appium·自动化·pytest·测试·allure
陈明勇22 天前
自动化测试在 Go 开源库中的应用与实践
后端·go·测试
帅得不敢出门22 天前
Python+Appium+Pytest+Allure自动化测试框架-代码篇
python·appium·自动化·pytest·测试·allure
Dylanioucn22 天前
《解锁 TDD 魔法:高效软件开发的利器》
后端·功能测试·测试·测试驱动开发·tdd
北京_宏哥23 天前
《最新出炉》系列入门篇-Python+Playwright自动化测试-41-录制视频
前端·python·测试
努力的小雨24 天前
新手入门Java自动化测试的利器:Selenium WebDriver
后端·测试