当前位置: 首页 > news >正文

web自动化测试-selenium-03_下拉选择框、弹出框、滚动条操作

文章目录

  • 一、下拉选择框操作
    • Select 类
      • ⭐ 通过下标形式访问
      • ⭐ 通过value值访问
      • ⭐ 通过显示文本切换
  • 二、弹出框
    • 弹出框处理方法
  • 三、滚动条


一、下拉选择框操作

下拉框就是HTML中<select>元素

案例:
需求:使用“注册A.html”页面,完成对城市的下拉框的操作。

  1. 选择“广州”
  2. 暂停2秒,选择“上海”
  3. 暂停2秒,选择“北京”

方式一:使用CSS定位

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleepdriver = webdriver.Chrome()url = r"E:\CODE\test_study\web_source\day01\注册A.html"
driver.get(url)try:# 最大化浏览器driver.maximize_window()# 隐式等待driver.implicitly_wait(30)# 暂停2秒sleep(2)# 定位上海driver.find_element(By.CSS_SELECTOR,"[value='sh']").click()sleep(2)# 定位广州driver.find_element(By.CSS_SELECTOR,"[value='gz']").click()sleep(2)finally:driver.quit()

Select 类

Select类是Selenium 为操作select标签特殊封装的。

from selenium.webdriver.support.select import Select

实例化对象:select = Select(element)
element:<select>标签对应的元素,通过元素定位方式获取。
driver.find_element_by_id("selectA")

操作方法:

select_by_index(index)根据option索引来定位,从0开始
select_by_value(value)根据option属性 value值来定位
select_by_visible_text(text)根据option显示文本来定位

⭐ 通过下标形式访问

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from time import sleepdriver = webdriver.Chrome()url = r"E:\CODE\test_study\web_source\day01\注册A.html"
driver.get(url)try:'''步骤:1.导入包 Select类2.获取Select对象匿名:Select(element).select_by_index(1) 实名:select = Select(element)调用:select.select_by_index(1)'''# 通过下标形式访问el = driver.find_element(By.CSS_SELECTOR,'#selectA')sleep(2)Select(el).select_by_index(1)sleep(2)Select(el).select_by_index(2)sleep(2)finally:driver.quit()

⭐ 通过value值访问

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from time import sleepdriver = webdriver.Chrome()url = r"E:\CODE\test_study\web_source\day01\注册A.html"
driver.get(url)try:el = driver.find_element(By.CSS_SELECTOR,'#selectA')sleep(2)# 通过 value 值访问sel = Select(el)sel.select_by_value('sh')sleep(2)sel.select_by_value('gz')sleep(2)finally:driver.quit()

⭐ 通过显示文本切换

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from time import sleepdriver = webdriver.Chrome()url = r"E:\CODE\test_study\web_source\day01\注册A.html"
driver.get(url)try:el = driver.find_element(By.CSS_SELECTOR,'#selectA')# 通过显示文本切换sleep(2)Select(el).select_by_visible_text('A上海')sleep(2)Select(el).select_by_visible_text('A广州')sleep(2)finally:driver.quit()

二、弹出框

alert警告框
confirm确认框
prompt提示框

案例:
打开注册A.html页面,完成以下操作:

  1. 点击 alerta 按钮
  2. 关闭警告框
  3. 输入用户名:admin

我们先来看看这个代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleepdriver = webdriver.Chrome()url = r"E:\CODE\test_study\web_source\day01\注册A.html"
driver.get(url)try:driver.find_element(By.CSS_SELECTOR,'#alerta').click()sleep(2)driver.find_element(By.CSS_SELECTOR,'#userA').send_keys('admin')sleep(2)finally:driver.quit()

结果:
按钮被点击后,弹出警告框,而接下来输入用户名的语句没有生效。
是什么问题导致的?
如何处理警告框?

弹出框处理方法

  1. 获取弹出框对象
    alert = driver.switch_to.alert

  2. 调用
    alert.text——> 返回alert/confirm/prompt中的文字信息
    alert.accept()——>接受对话框选项
    alert.dismiss()——>取消对话框选项

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleepdriver = webdriver.Chrome()url = r"E:\CODE\test_study\web_source\day01\注册A.html"
driver.get(url)try:driver.find_element(By.CSS_SELECTOR,'#alerta').click()sleep(2)alert1 = driver.switch_to.alertalert1.accept()driver.find_element(By.CSS_SELECTOR,'#userA').send_keys('admin')sleep(2)finally:driver.quit()

三、滚动条

滚动条:一种可控制页面显示范围的组件。

为什么要学习滚动条操作?
① 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载;
② 页面注册同意条款,需要滚动条到最底层,才能点击同意。

实现方式:
① 设置JavaScript脚本控制滚动条
hs = "window.scrollTo(0,1000)"
(0:左边距;1000:上边距;单位:像素)
② Selenium 调用执行 JavaScript 脚本的方法
driver.execute_script(js)

案例:
打开注册页面A,暂停2秒后,滚动条拉到最底层。

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleepdriver = webdriver.Chrome()url = r"E:\CODE\test_study\web_source\day01\注册A.html"
driver.get(url)try:sleep(2)# 设置js控制滚动条语句js = 'window.scrollTo(0, 10000);'# 调用执行js语句方法driver.execute_script(js)sleep(2)finally:driver.quit()
http://www.dtcms.com/a/538145.html

相关文章:

  • 北京大龙建设集团有限公司网站wordpress主题 学校官网
  • 好的结构设计网站wordpress 有趣的插件
  • 做电商哪几个设计网站比较好移动互联网应用程序备案
  • Orleans 自定义二进制协议在 TCP 上层实现的完整过程
  • 宁波网站建设工作室重庆手机网站制作价格
  • 那个做图网站叫什么贵州做网站怎么推广
  • PostgreSQL认证含金量如何?适合哪些人?
  • ZSet 与实时排行榜:从应用到原理的深度解析
  • 网站获取访客手机号源码百度软文推广公司
  • 辽宁省建设厅网站河南网站建设工作室
  • html5电影网站源码php网站开发费用清单
  • 湖北微网站建设多少钱品牌网站建设美丽
  • 龙华品牌网站制作公众号 上传 wordpress
  • 吉林市网站建设公司做网站哪里学
  • 宁波英文网站建设国产wordpress模板
  • 28-4.1继承
  • opencart网站国外wordpress电影模板
  • 成都网站维护公司装修公司网站开发
  • 如何识别一个网站是否做的好wordpress 优秀主题
  • 电子商务网站开发基本流程图黄页 网站模板
  • 开发青年网站一个做二维码问卷调查的网站
  • 网页站点什么意思网站建设运营公司推荐
  • 北京网站seo排名在哪里可以做个人网站
  • Java基础一文速过
  • 南宁希噢网站开发工作室爱淘苗网站开发模式
  • 单位的网站的建设wordpress页首文件
  • 天龙八部TLBB系列 - 客户端技术整体性分析
  • 140.72bit ddr测试时ddr_dm脚如果硬件存在,则需要拉低处理
  • 石家庄网站建设电话咨询代做淘宝联盟网站
  • 农村pc网站开发wordpress 男科医院主题