select方法:
操作步骤:
selenium关于下拉框的操作都交由Select类进行处理,一般获取到下拉框元素之后使用该类构建对象,调用对象的相应方法就能操作元素。
1) 导入Select类
from selenium.webdriver.support.select import Select
2) 在页面中定位到下拉框元素:
el_sel = driver.find_element_by_xxx(“value”)
3) 将定位到的下拉框元素构建成为Select对象
selobj = Select(el_sel)
4) 调用相应方法选择下拉框中的选项
selobj.select_by_index() 通过索引选择,index索引从 0 开始
selobj.select_by_value() 通过value属性值选择
(value是option标签的一个属性)
selobj.select_by_visible_text() 通过文本选择(下拉框的值)
5) 通过属性查看
first_selected_option 第一个被选中的option标签对象
options select标签中option标签构成的列表
Select类实现
1. 导包 Select类 --> from selenium.webdriver.support.select import Select
2. 实例化Select类 select=Select(WebElemet)
(WebElement):driver.find_element_by_tag_name("select")
3. 调用方法:select.select_by_index(index)
(index:为列表索引,从0开始)
总结
#导包
from selenium.webdriver.support.select import Select
...
# 1. 根据索引实现
select.select_by_index(1)
select.select_by_index(3)
select.select_by_index(2)
# 2. 根据文本值实现
select.select_by_visible_text("北京")
select.select_by_visible_text("上海")
select.select_by_visible_text("广州")
# 3. 根据value属性实现
select.select_by_value("bj")
select.select_by_value("sh")
select.select_by_value("gz")
警告框处理
操作原理:
1) selenium中的alert用来操作页面弹出框。
2) 对于弹出框可进行获取弹出框文本、点击“确定”、关闭窗口操作。
1.1 警告框分类
说明:WebDriver中对处理警告框的操作,有专用的处理方法;
提示:HTML中常用的对话框有三种,处理的方法都一样
1). alert
2). confirm
3). prompt
1.2 警告框处理方法
1. text --> 返回alert/confirm/prompt中的文字信息
2. accept() --> 接受对话框选项
3. dismiss() --> 取消对话框选项
4. send_keys() --> 输入内容
1.3 调用方法-alert
driver = webdriver.Firefox()
driver.get("http://sahitest.com/demo/alertTest.htm")
driver.find_element_by_name("b1").click()
# 获取警告框
alert = driver.switch_to.alert
print(alert.text)
alert.accept()
1.4 调用方法-confirm
driver = webdriver.Firefox()
driver.get("http://sahitest.com/demo/confirmTest.htm")
driver.find_element_by_name("b1").click()
# 获取警告框
alert = driver.switch_to.alert
print(alert.text)
alert.accept()
1.5 调用方法-prompt
driver = webdriver.Firefox()
driver.get("http://sahitest.com/demo/promptTest.htm")
driver.find_element_by_name("b1").click()
# 获取警告框
alert = driver.switch_to.alert
print(alert.text)
alert.send_keys("hello")
alert.accept()
滚动条
1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载
2. 页面注册同意条款,需要滚动条到最底层,才能点击同意
实现分析:
1. 设置JavaScritp脚本控制滚动条
1) js="window.scrollTo(x,y)"
(x:左边距;y:上边距;单位像素)
所有浏览器都支持window对象。它表示浏览器窗口。
2) js= “document.documentElement.scrollTop=n"
n为从顶部往下移动滚动距离
2. WebDriver调用js脚本方法 driver.execute_script(js)
# 最底层
js1="window.scrollTo(0,1000)"
# 最顶层
js2="window.scrollTo(0,0)"
# 执行最底层
driver.execute_script(js1)
# 执行最顶层
driver.execute_script(js2)
swipe、drag_and_drop
传入起始的位置x和y,和结束的位置x和y
driver.swipe(strat_x,start_y,end_x,end_y)
从一个元素滑动到另一个元素,第二个元素替代第一个元素原本屏幕上的位置
drag_and_drop(el1,el2)
drag传元素,swipe传坐标,scroll和drag没有“惯性”,都是使用元素进行传参