selenium学习(python版)
一.环境安装
二.浏览器的相关操作
1.浏览器的创建,设置,打开
1.导包
-
from selenium import webdriver #用于操作浏览器
-
from selenium.webdriver.chrome.options import Options #用于设置谷歌浏览器
-
from selenium.webdriver.chrome.service import Service #用于管理谷歌驱动
2.创建设置浏览器对象
q1=Options()
3.禁用沙盒模式(增加系统兼容性)
q1.add_argument('--no-sandbox')
4.保持浏览器打开状态(默认是代码执行完毕自动关闭)
q1.add_experimental_option('detach',True)
5.创建并启动浏览器
a1=webdriver.Chrome(service=Service('chromedriver.exe'),options=q1)
2.打开网页,关闭当前标签页,关闭浏览器
打开指定网址 #get()
关闭当前标签页 #close()
退出浏览器并释放驱动 #quit()
3.浏览器的最大化,最小化
浏览器最大化 #maximize_window()
浏览器最小化 #minimize_window()
4.浏览器的打开位置,打开尺寸
浏览器打开位置 #set_window_positon(200,100)
浏览器打开尺寸 #set_window_size(600,600)
5.浏览器截图,网页刷新
浏览器截图 #get_screenshot_as_file()
浏览器刷新 #refresh()
6.元素定位
from selenium.webdriver.common.by import By
定位一个元素(找到的话返回结果,找不到的话报错)
find_element(By.ID,'kw')
定位多个元素(找到的话返回列表形式,找不到的话返回空列表)
find_elements(By.ID,'kw')
元素定位-ID
find_element(By.ID,'kw').send_keys('adidas')
元素定位-NAME
find_element(By.NAME,'wd').send_keys('adidas')
元素定位-CLASS_NAME
find_elements(By.CLASS_NAME,'chat-input-container')[1].click()
注:1.class值不能有空格,否则报错
2.class值重复的有很多,需要切片
3.class值有的网站是随机的
元素定位-TAG_NAME
find_element(By.TAG_NAME,'a').[7].click()
注:1.查找<开头标签名字>
2.重复的标签名字特别多,需要切片
元素定位-LINK_TEXT
find_elements(By.LINK_TEXT,'a').[3].click()
find_element(By.LINK_TEXT,'地图').click()
注:1.通过精准链接文本找到标签a的元素
2.有重复文本,需要切片
元素定位-PARTIAL_LINK_TEXT
find_elements(By.PARTIAL_LINK_TEXT,'图').[1].click()
注:1.通过模糊链接文本找到标签a的元素(模糊文本定位)
2.有重复文本,需要切片
元素定位-CSS_SELECTOR
find_element(By.CSS_SELECTOR,'').send_keys('adidas')
-
#id=井号+id值 通过id定位
-
.class=.+class值 通过class定位
-
不加修饰符=标签头 通过标签头定位
-
通过任意类型定位:“[类型=‘精准值’]”
-
通过任意类型定位:“[类型*=‘模糊值’]”
-
通过任意类型定位:“[类型^=‘开头值’]”
-
通过任意类型定位:“[类型$=‘结尾值’]”
-
更简单的定位方式,在谷歌控制台直接复制 selector(个别元素定位值会比较长)
元素定位-XPATH
find_element(By.Xpath,'')
注:
-
复制谷歌浏览器 Xpath(通过属性+路径定位,属性如果是随机的,可能定位不到)
-
复制谷歌浏览器 Xpath 完整路径(缺点:定位值比较长 优点:定位百分百准确)
元素定位隐性等待
implicitly_wait(10)
注:通用设置,即多少秒内找到立刻执行,没找到元素就报错
7.元素交互
元素输入 #send_keys('adidas')
元素清空 #clear()
元素点击 #click()
单选框,多选框,下拉列表元素交互
获取句柄,切换标签页
-
获取全部标签页句柄 #window_handles
-
关闭之前标签页 #close()
-
通过句柄切换标签页 #switch_to.window()
-
获取当前标签页句柄 #current_window-handle
警告框(alert)元素交互
-
获取弹窗内的文本内容 # switch_to.alert.text
-
点击弹窗确定按钮 #switch_to.alert.accept()
确认框(confirm)元素交互
-
点击弹窗取消按钮 #switch_to.alert.dismiss()
提示框(prompt)元素交互
-
弹窗输入内容 #switch_to.alert.send_keys('adidas')
iframe嵌套页面进入,退出
-
获取iframe元素
-
进入iframe嵌套页面 #switch_to.frame()
-
进入iframe页面操作元素点击
-
退出iframe嵌套页面 #switch_to.default_content()
获取元素文本内容,是否可见
-
获取元素文本内容 #text
-
元素是否可见 #is_displayed()
网页前进,后退
-
前进 #forward()
-
后退 #back()
电商模拟测试网站(最贴合实战)
-
特点:标准电商登录 + 商品列表 + 购物车 + 结算全流程,提供固定测试账号(无需注册),元素清晰、无反爬,完美匹配上面的实战题目
-
固定测试账号:
-
标准用户:
standard_user/ 密码:secret_sauce -
锁定用户:
locked_out_user/ 密码:secret_sauce
-
-
适合:完整流程自动化、购物车 / 登录 / 搜索场景测试
下拉,复选,单选练习
https://demo.guru99.com/test/newtours/register.php
自动化测试综合实战题(全功能覆盖)
练习网站
https://rahulshettyacademy.com/practice
题目要求
用 Selenium/Playwright 完成以下12 项操作,覆盖定位、下拉、复选、弹窗、嵌套、导航、断言等全部场景:
-
打开练习网站,断言页面标题包含Practice
-
定位输入框,输入自动化测试,获取并打印输入内容
-
下拉框(Dropdown Example)选择Option2,断言选中值正确
-
勾选Option1与Option3两个复选框,验证勾选状态
-
点击Alert按钮,获取警告框文本并确定关闭
-
点击Confirm按钮,选择取消,获取返回提示文本
-
定位Switch Window按钮打开新标签页,再切回原页面
-
进入iFrame嵌套页面,获取 iframe 内文本并退出 iframe
-
断言Element Displayed Example区域元素可见 / 隐藏状态
-
点击页面内链接跳转,执行浏览器前进、后退
-
获取Web Table第一行第二列文本,做文本断言
-
鼠标悬停Mouse Hover按钮,点击弹出的Top选项
更多推荐



所有评论(0)