一.环境安装

二.浏览器的相关操作

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')

  1. #id=井号+id值 通过id定位

  2. .class=.+class值 通过class定位

  3. 不加修饰符=标签头 通过标签头定位

  4. 通过任意类型定位:“[类型=‘精准值’]”

  5. 通过任意类型定位:“[类型*=‘模糊值’]”

  6. 通过任意类型定位:“[类型^=‘开头值’]”

  7. 通过任意类型定位:“[类型$=‘结尾值’]”

  8. 更简单的定位方式,在谷歌控制台直接复制 selector(个别元素定位值会比较长)

元素定位-XPATH

find_element(By.Xpath,'')

注:

  1. 复制谷歌浏览器 Xpath(通过属性+路径定位,属性如果是随机的,可能定位不到)

  2. 复制谷歌浏览器 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()

电商模拟测试网站(最贴合实战)
  • 网址:https://www.saucedemo.com/

  • 特点:标准电商登录 + 商品列表 + 购物车 + 结算全流程,提供固定测试账号(无需注册),元素清晰、无反爬,完美匹配上面的实战题目

  • 固定测试账号:

    • 标准用户:standard_user / 密码:secret_sauce

    • 锁定用户:locked_out_user / 密码:secret_sauce

  • 适合:完整流程自动化、购物车 / 登录 / 搜索场景测试

下拉,复选,单选练习

https://demo.guru99.com/test/newtours/register.php

自动化测试综合实战题(全功能覆盖)

练习网站

https://rahulshettyacademy.com/practice

题目要求

用 Selenium/Playwright 完成以下12 项操作,覆盖定位、下拉、复选、弹窗、嵌套、导航、断言等全部场景:

  1. 打开练习网站,断言页面标题包含Practice

  2. 定位输入框,输入自动化测试,获取并打印输入内容

  3. 下拉框(Dropdown Example)选择Option2,断言选中值正确

  4. 勾选Option1Option3两个复选框,验证勾选状态

  5. 点击Alert按钮,获取警告框文本并确定关闭

  6. 点击Confirm按钮,选择取消,获取返回提示文本

  7. 定位Switch Window按钮打开新标签页,再切回原页面

  8. 进入iFrame嵌套页面,获取 iframe 内文本并退出 iframe

  9. 断言Element Displayed Example区域元素可见 / 隐藏状态

  10. 点击页面内链接跳转,执行浏览器前进、后退

  11. 获取Web Table第一行第二列文本,做文本断言

  12. 鼠标悬停Mouse Hover按钮,点击弹出的Top选项

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐