一、下拉选择框
1、什么是下拉选择框
说明:下拉框就是HTML中<select>元素
2、为什么学习下拉选择框?
(1)传统代码实现:
定位option选项(8中定位方式)
(2)问题:
1、传统定位根据option选项的值来判断
2、如果有多个选项传统定位方式处理起来比较繁琐
3、Select类
说明:Select类是WebDriver为解决select标签定位诞生的,此类定位的是select标签
(1)select方法
select_by_index() 根据option索引来定位,从0开始
select_by_value() 根据option属性 value值来定位
select_by_visible_text() 根据option显示文本来定位
(2)select实现代码
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.select import Select
driver = webdriver.Firefox()
driver.get(r'G:\python\day1\source\注册A.html')
sleep(2)
select = Select(driver.find_element_by_id("selectA"))
#根据索引实现
sleep(2)
select.select_by_index(1)
#根据文本值实现
sleep(2)
select.select_by_value('bj')
#根据value属性实现
sleep(2)
select.select_by_visible_text('A重庆')
sleep(3)
driver.quit()
二、警告框处理
说明:WebDriver中对处理警告框的操作,有专门的处理方法
提示:HTML中常用的对话框有三种,处理的方法都一样
(1)alert
(2)confirm
(3)prompt
1、警告框处理方法
(1)text 返回alert/confirm/prompt中的文字信息
(2)accept() 接受对话框选项
(3)dismiss() 取消对话框选项
2、调用方法
(1)获取警告框 alert = driver.switch_to.alert
(2)调用 :
alert.text
alert.accept()
alert.dismiss()
3、处理警告框
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get(r'G:\python\day1\source\注册A.html')
sleep(2)
driver.find_element_by_id('alerta').click()
sleep(2)
alert = driver.switch_to.alert
print(alert.text)
alert.accept()
sleep(2)
driver.find_element_by_id('userA').send_keys('admin')
sleep(3)
driver.quit()
三、滚动条操作
说明:WebDriver类库中并没有直接提供对滚动条进行操作方法,但是它提供了可调用JavaScript脚本的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的
备注:(1)滚动条:一种可控制程序显示范围的组件
(2)JavaScript:一种流行脚本语言,可以操作HTML标签
1、为什么要学习滚动条操作?
(1)在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载
(2)页面注册同意条款,需要滚动条到最底层,才能点击同意
2、设置JavaScript脚本控制滚动条
js = “window.scrollTo(0,1000)”
(0:左边距;1000:上边距,单位像素)
WebDriver调用js脚本方法: driver.execute_script(js)
3、处理滚动条
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get(r'G:\python\day1\source\注册A.html')
sleep(2)
js1 = "window.scrollTo(0,1000)"
js2 = "window.scrollTo(0,0)"
driver.execute_script(js1)
sleep(2)
driver.execute_script(js2)
sleep(3)
driver.quit()
4、滚动条总结
(1)WebDriver控制滚动方法
(2)JavaScript控制滚动条语句