• selenium+python学习——webdriver总结


    1、学习自动化前,需先了解html和python的基础语法

    2、安装环境

    1)安装python+pycharm安装方法

    可参考:微信公众号:软件安装管家(其中含有安装包以及安装方法)

    2)安装selenium

    可参考博文:https://www.cnblogs.com/yuer02/p/11905605.html

    3、基础学习

    1)需掌握元素定位方法

    a、单元素八大定位方式

    b 、xpath结合属性定位

    c 、css结合属性定位

     

    css定位方法和xpath定位方法的区别:两者基本能定位所有的元素。xpath定位元素慢,语法很长,还不稳定,而css的定位更快,更简洁。但本人还是比较习惯用xpath

    d、下来框定位方式

    参考链接:https://www.cnblogs.com/yoyoketang/p/6128636.html

    其实,元素定位方式还有find_elements_by_xxx,与8种元素定位方式一样,只需要加上索引;另外还可以通过用By来定位(后续再研究)

    2)操作页面

     还有其他的,后续补充

    3)操作元素

     4)框架集

     5)判断元素是否符合预期

    可参考链接:http://www.mamicode.com/info-detail-1720150.html

     6)多窗口、句柄

     7)加载chrome配置

    参考链接:https://www.cnblogs.com/yuer02/p/12613920.html

    8)等待

    强制等待:time.sleep(时间)

    隐式等待:driver.implicitle_wait(时间)

    显式等待:WebDriverWait;用法参考博文:https://www.cnblogs.com/yoyoketang/p/6517477.html

    9)alert

    alert警告框、confirm确认框、prompt消息对话框

    具体详见链接:https://www.cnblogs.com/yuer02/p/12625551.html

     相关代码:

    from selenium import webdriver
    import time as t
    from selenium.webdriver.support.select import Select
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as ec
    from selenium.webdriver.common.by import By
    
    
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("http://www.baidu.com")
    t.sleep(3)
    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id("su").send_keys(Keys.ENTER)
    # 显式等待,待元素定位
    WebDriverWait(driver,10).until(ec.presence_of_element_located((By.ID,"kw")))
    # 鼠标悬停
    mouse = driver.find_element_by_name("tj_settingicon")
    ActionChains(driver).move_to_element(mouse).perform()
    driver.find_element_by_link_text('搜索设置').click()
    # # 隐式等待
    # driver.implicitly_wait(10)
    t.sleep(5)
    # 定位下拉框
    select = driver.find_element_by_name("NR")
    # # 以索引的方式定位
    # Select(select).select_by_index(2)
    # print("下拉框选择的最新条数是:",select.get_attribute('value'))
    # 以value定位
    # Select(select).select_by_value("10")
    # print("下拉框选择的最新条数是:",select.get_attribute('value'))
    # 以文本定位
    Select(select).select_by_visible_text("每页显示10条")
    print("下拉框选择的最新条数是:",select.get_attribute('value'))
    t.sleep(3)
    driver.find_element_by_xpath('//*[@id="se-setting-5"]/label[1]').click()
    t.sleep(4)
    # 判断是否选中is_selected()
    s = driver.find_element_by_xpath('//*[@id="se-setting-5"]/label[1]').is_selected()
    if s == False:
        driver.find_element_by_xpath('//*[@id="se-setting-5"]/label[1]').click()
        print(s)
    else:
        print(True)
    driver.find_element_by_css_selector("#gxszButton > a.prefpanelgo").click()
    # alert弹框
    print("alert弹出框的文本信息为:{0}".format(driver.switch_to.alert.text))  # 获取弹出框的文本信息
    driver.switch_to.alert.accept()
    # 多窗口、句柄
    driver.get("http://bj.ganji.com/")
    h = driver.current_window_handle
    print(h)
    driver.find_element_by_link_text("全职").click()
    all_h = driver.window_handles
    print(all_h)
    # # 用索引的方式
    # driver.switch_to.window(all_h[0])
    # 通用用法
    for i in all_h:
        if i != h:
            driver.switch_to.window(i)
            print(driver.title)
    # 关闭新窗口
    driver.close()
    driver.quit()
    

      

  • 相关阅读:
    安卓监听帧动画结束
    零基础学python-13.4 文件上使用列表解析与列表解析扩展
    零基础学python-13.3 列表解析简介与步骤分解
    零基础学python-13.2 手动迭代:iter和next
    零基础学python-13.1 迭代器简介与文件迭代器
    零基础学python-12.6 使用for和zip来并行使用多个序列
    零基础学python-12.5 修改列表的误区以及使用for和range修改列表
    零基础学python-12.4 while、for与range联合使用
    零基础学python-12.3 for循环
    零基础学python-12.2 关键字pass,else,break,continue
  • 原文地址:https://www.cnblogs.com/yuer02/p/12620988.html
Copyright © 2020-2023  润新知