前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >web自动化08-下拉选择框、弹出框、滚动条

web自动化08-下拉选择框、弹出框、滚动条

作者头像
似小陈吖
发布2023-10-17 09:56:04
2620
发布2023-10-17 09:56:04
举报
文章被收录于专栏:测试那些事

1、下拉选择框操作

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

先列需求:

代码语言:javascript
复制
需求:使用‘注册A.html’页面,完成对城市的下拉框的操作
1).选择‘广州’
2).暂停2秒,选择‘上海’
3).暂停2秒,选择‘北京’

我们首先可以通过直接定位下拉框中的内容对应的元素,完成对下拉框元素的处理,我们也可以通过select类

我们先来认识select类:

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

  实例化对象:

    select = Select(element)

    element: <select>标签对应的元素,通过元素定位方式获取,

  例如:driver.find_element_by_id("selectA")

常用可以用什么定位呢?

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

Select类实现步骤分析:

  1. 导包 Select类 -->     from selenium.webdriver.support.select import Select

  2. 实例化Select类      select = Select(driver.find_element_by_id("selectA"))

  3. 调用方法:          select.select_by_index(index)

我们来做一下上面需求:

代码语言:javascript
复制
from selenium.webdriver.support.select import Select
select = Select(driver.find_element_by_id("selectA"))
select.select_by_index(2) # 根据索引实现
select.select_by_value("sh") # 根据value属性实现
select.select_by_visible_text("A北京") # 根据文本内容实现

2、弹出框处理

  应用场景:页面操作中,一旦出现弹窗,不进行处理,后续的操作无法进行

  弹窗分类:1、系统弹窗(js实现)  2、自定义弹窗(前端代码封装)

网页中常用的弹出框有三种:

            1. alert 警告框

            2. confirm 确认框

            3. prompt 提示框

先列需求:

代码语言:javascript
复制
需求:打开注册A.html页面,完成以下操作:
1).点击 alert 按钮
2).关闭警告框
3).输入用户名:admin

说明:Selenium中对处理弹出框的操作,有专用的处理方法;并且处理的方法都一样

(只要是系统弹窗,不论是哪一个,都是alert)

  1. 获取弹出框对象

      alert = driver.switch_to.alert

  2. 调用

      alert.text -->     返回alert/confirm/prompt中的文字信息

      alert.accept() -->   接受对话框选项

      alert.dismiss() -->   取消对话框选项

我们来做一下上面需求:大家可以做一下

自定义弹窗可以通过定位元素,来进行操作

3、滚动条操作

为什么需要滚动条呢?

  1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载

  2. 页面注册同意条款,需要滚动条到最底层,才能点击同意

代码语言:javascript
复制
先提需求:打开注册页面A,暂停2秒后,滚动条拉到最底层

说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行JavaScript脚本的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的。

  1. 设置JavaScript脚本控制滚动条

    js = "window.scrollTo(0,1000)"

    (0:左边距;1000:只是一个尽可能大的值,不是准确值)

  2. selenium调用执行JavaScript脚本的方法

    driver.execute_script(js)

我们来做一下上边需求:

代码语言:javascript
复制
# 最底层
js1 = "window.scrollTo(0,10000)"
driver.execute_script(js1)
# 最顶层
js2 = "window.scrollTo(0,0)"
driver.execute_script(js2)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、下拉选择框操作
  • 2、弹出框处理
  • 3、滚动条操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档