UI自动化测试(Python)Web-下拉、弹出框、滚动条操作

457 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

src=http___i.cqdj.cc_forum_201307_27_160601dupc4j8gucap6mld.gif&refer=http___i.cqdj.gif

   您好,我是游手好闲的小羊!

一、下拉选择框和操作方法

说明:下拉框就是HTML中"select"元素

如何操作下拉选择框?

思路:我们可以先定位到要操作的option元素,然后执行点击操作,但是有个问题就是操作起来比较繁琐:要先定位到要操作的选项,然后再执行点击操作的代码要如何实现呢?

那就需要借助到Select类

说明:Select类是Selenium为操作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)

调用方法:

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

实例代码:

#导包
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北京") # 根据文本内容实现

二、弹出框、弹出框处理方法

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

操作实现步骤分析:

1. 获取弹出框对象
alert = driver.switch_to.alert
2. 调用
alert.text --> 返回alert/confirm/prompt中的文字信息
alert.accept() --> 接受对话框选项
alert.dismiss() --> 取消对话框选项

实例代码:

# 定位alerta按钮
driver.find_element_by_id("alerta").click()
# 获取警告框
alert = driver.switch_to.alert
# 打印警告框文本
print(alert.text)
# 接受警告框
alert.accept()

三、滚动条、滚动条操作方法

说明:一种可控制页面显示范围的组件
使用范围

  1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载
  2. 页面注册同意条款,需要滚动条到最底层,才能点击同意

实现方式:

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

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

最底层和最顶层实现代码:

# 最底层
js1 = "window.scrollTo(0,10000)"
driver.execute_script(js1)
#最顶层
js2="window.scrollTo(0,0)"
driver.execute_script(js2)

每天分享一点点,我是带你学习的小羊!