目标 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脚本的方法? |