A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】下拉选择框、弹出框、滚动条操作
目标
1. 掌握下拉选择框的操作方法
2. 掌握处理弹出框的方法
3. 掌握调用JavaScript方法
1. 下拉选择框操作
说明:下拉框就是HTML中<select>元素;
1.1 如何操作下拉选择框?
案例
需求:使用‘注册A.html’页面,完成对城市的下拉框的操作
1). 选择‘广州’
2). 暂停2秒,选择‘上海’
3). 暂停2秒,选择‘北京’
案例实现方式一
思路:先定位到要操作的option元素,然后执行点击操作
问题
操作起来比较繁琐:要先定位到要操作的选项,然后再执行点击操作
1.1 Select
说明:Select类是Selenium为操作select标签特殊封装的。

实例化对象:
select  =  Select(element)
element:  <select>标签对应的元素,通过元素定位方式获取,例如:driver.find_element_by_id("selectA")
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)
示例代码
#导包
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北京")    #  根据文本内容实现
1.1 总结
1.  通过Select类如何选择下拉框?
1. 弹出框处理
网页中常用的弹出框有三种
1. alert        警告框
2. confirm    确认框
prompt        提示框
案例
需求:打开注册A.html页面,完成以下操作:
1). 点击  alert  按钮
2). 关闭警告框
3). 输入用户名:admin
问题
1. 按钮被点击后弹出警告框,而接下来输入用户名的语句没有生效
2. 什么问题导致的?
3. 如何处理警告框?
弹出框处理方法
说明:Selenium中对处理弹出框的操作,有专用的处理方法;并且处理的方法都一样

1. 获取弹出框对象
alert  =  driver.switch_to.alert
2. 调用
alert.text        -->  返回alert/confirm/prompt中的文字信息
alert.accept()        -->  接受对话框选项
alert.dismiss()        -->  取消对话框选项
1.1 示例代码
#  定位alerta按钮
driver.find_element_by_id("alerta").click()
# 获取警告框
alert  =  driver.switch_to.alert
# 打印警告框文本
print(alert.text)
# 接受警告框
alert.accept()
# 取消警告框
#  alert.dismiss()
1.1 总结
1.  如何处理弹出框?
1. 滚动条操作
滚动条:一种可控制页面显示范围的组件
1.1 为什么要学习滚动条操作?
1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载
2. 页面注册同意条款,需要滚动条到最底层,才能点击同意
1.1 实现方式
说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行JavaScript脚本的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的。
1. 设置JavaScript脚本控制滚动条
js  =  "window.scrollTo(0,1000)"
(0:左边距;1000:上边距;单位像素)
2. selenium调用执行JavaScript脚本的方法
driver.execute_script(js)
案例
需求:打开注册页面A,暂停2秒后,滚动条拉到最底层
示例代码
# 最底层
js1  =  "window.scrollTo(0,10000)" driver.execute_script(js1)
# 最顶层
js2  =  "window.scrollTo(0,0)" driver.execute_script(js2)
1.1 总结
1. JavaScript如何控制滚动条?
2. Selenium执行JavaScript脚本的方法?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马