python-selenum3 第六天—

发布时间:2019-09-07 08:12:33编辑:auto阅读(1524)

    1.循环遍历所有的下拉列表值
    2.单选下拉列表
    3.多选择列表的选中与取消
    4.操作单选框、多选框以及断言及全部选中
    5.断言页面源码中的关键字
    6.截屏
    7.拖拽页面元素


    1. 循环遍历所有的下拉列表值

       <!--练习的html-->
         学历:<select id="zz" name="ss" size="1">
                       <option value ="you">幼儿园</option>
                       <option value ="xiao">小学</option>
                       <option value ="chu">初中</option>
                       <option value ="gao">高中</option>
                       <option value ="da">大学</option>
                  </select>
    from selenium import webdriver
    #导入select模块
    from selenium.webdriver.support.select import Select
    driver  = webdriver.Firefox(executable_path="d:\\geckodriver")
    url = "file:///d:/day8.html"
    driver.get(url)
    #定位下拉菜单
    select_element = driver.find_element_by_id("zz")
    #将所有的内容保存并赋值给options   注意这里是所有元素 所以用elements
    options = select_element.find_elements_by_tag_name("option")
    #循环显示加打印
    for option in options:
        print("选项显示的文本:",option.text)
        print("选项值为:",option.get_attribute("value"))
        option.click()
        import time
        time.sleep(1)

    2.单选下拉列表

    from selenium import webdriver
    from selenium.webdriver.support.select import Select
    driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
    driver.get("file:///d:/day8.html")
    #定位下拉菜单
    xiala = driver.find_element_by_id("zz")
    #通过序号选择,序号从0开始,2为初中
    Select(xiala).select_by_index(2)
    #通过value属性值选择,选择高中
    Select(xiala).select_by_value("gao")
    #通过文本值选择,直接选择大学
    Select(xiala).select_by_visible_text(u"大学")

    3.多选择列表的选中与取消

       <!--练习的html-->
                 学历:<select id="zz" name="ss" size="6" multiple="true">
                       <option value ="you">幼儿园</option>
                       <option value ="xiao">小学</option>
                       <option value ="chu">初中</option>
                       <option value ="gao">高中</option>
                       <option value ="da">大学</option>
                  </select>
    from selenium import webdriver
    from selenium.webdriver.support.select import Select
    driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
    driver.get("file:///d:/day8.html")
    #定位下拉菜单
    xiala = driver.find_element_by_id("zz")
    #多选后为选择初中、高中、大学
    Select(xiala).select_by_index(2)
    Select(xiala).select_by_value("gao")
    Select(xiala).select_by_visible_text(u"大学")
    #取消已经选择的内容(下面简写了,比选择多加了个de而已,最后一个是取消所有已经选中)
    Select(xiala).deselect_by_index(2)
    Select(xiala).deselect_by_value("gao")
    Select(xiala).deselect_by_visible_text(u"大学")
    Select(xiala).deselect_all()

    4.操作单选框、多选框以及断言及全部选中

       <!--练习的html-->
    
          <!--单选--> <p>
                 性别:男<input type="radio" name="r1" checked/>
                       女<input type="radio" name="r1" />
                       不明<input type="radio" name="r1" />
               </p>
        <!--多选-->  <p>
                 爱好:游戏<input type="checkbox" name="c1" checked/>
                       文艺<input type="checkbox" name="c2" />
                       睡觉<input type="checkbox" name="c3" />
               </p>
    from selenium import webdriver
    driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
    driver.get("file:///d:/day8.html")
    #最简单的单选和多选,直接点击选择框即可 下面为单选女的选择点击
    xuanzhong = driver.find_element_by_xpath("/html/body/form/p[2]/input[2]")
    xuanzhong.click()
    #断言是否被选中(选择需要配合框架使用)
    assertTrue(xuanzhong.is_selected(),u"女没有被选中")
    #一次性将所有的多选选项全部选择(一定要注意因为一次性多选所以是elements)
    #注意:因为游戏是默认,所以在次点击等于取消了选择,下面结果为选中文艺和睡觉
    duoxuan = driver.find_elements_by_xpath(".//*[@type='checkbox']")
    for i in duoxuan:
        i.click()

    5.断言页面源码中的关键字

    from selenium import webdriver
    driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
    driver.get("https://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("WIKTK")
    driver.find_element_by_id("su").click()
    import time
    time.sleep(4)
    #断言页面源码中的关键字
    assert "WIKTK" in driver.page_source, u"页面中源码中不存在该关键字"

    6.截屏

    from selenium import webdriver
    driver  = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
    driver.get("https://www.baidu.com")
    driver.save_screenshot(r"d:\截图.png")

    7.拖拽页面元素

    http://jqueryui.com/resources/demos/draggable/scroll.html
    from selenium import webdriver
    driver = webdriver.Firefox(executable_path="E:\\geckodriver.exe")
    driver.get("http://jqueryui.com/resources/demos/draggable/scroll.html")
    #定位第一、第二、第三拖动框体
    yi = driver.find_element_by_id("draggable")
    er = driver.find_element_by_id("draggable2")
    san = driver.find_element_by_id("draggable3")
    
    #导入拖拽元素方法模块
    from selenium.webdriver import ActionChains
    
    a_chains = ActionChains(driver)
    #第一个框拖动到第二个框
    a_chains.drag_and_drop(yi, er).perform()
    #将第三个框平移500
    a_chains.drag_and_drop_by_offset(san,500, 0).perform()

关键字