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没有“惯性”,都是使用元素进行传参