zoukankan      html  css  js  c++  java
  • selenium 用法详解

    selenium  webdriver官方文档 

    webdriver可以认为是浏览器的驱动器,要驱动浏览器必须用到webdriver,支持多种浏览器,这里以Firefox为例


    from selenium import webdriver
    #要想调用键盘按键操作需要引入keys包
    from selenium.webdriver.common.keys import Keys
    def get_browser():
        browser=webdriver.Firefox()
        ## get方法会一直等到页面被完全加载,然后才会继续程序,通常测试会在这里选择 time.sleep(2)
        browser.get("http://www.baidu.com")
        #id="kw"是百度搜索输入框,输入字符串" "
        browser.find_element_by_id("kw").send_keys(u'易烊千玺')
        #id="su"是百度搜索按钮,click() 是模拟点击
        browser.find_element_by_id("su").click()
    if __name__=="__main__":
        get_browser()

     元素定位 ,有如下的API 单个元素选取

    find_element_by_id
    find_elements_by_name
    find_elements_by_xpath
    find_elements_by_link_text
    find_elements_by_partial_link_text
    find_elements_by_tag_name
    find_elements_by_class_name
    find_elements_by_css_selector
    <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    <input type="submit" id="su" value="百度一下" class="bg s_btn">
    <a href="http://www.google.com/search?q=cheese">cheese</a>
    <a href="http://www.google.com/search?q=cheese">search for cheese</a>>
    #id 定位
    browser.find_element_by_id("kw")
    #name定位
    browser.find_element_by_name("wd")
    #class定位
    browser.find_element_by_class_name("s_ipt")
    #tag定位
    browser.find_element_by_tag_name("input")
    #link定位
    browser.find_element_by_link_text("cheese")
    #partial link 定位
    browser.find_element_by_partial_link_text("search for")

    #Xpath 定位 (可通过复制 XPath )

    browser.find_element_by_xpath("//*[@id='kw']")
    # CSS定位(可通过复制 CSS 选择器/CSS 路径)
    browser.find_element_by_css_selector("#kw")

      用By 定位元素

    针对前面的8种定位方法,webdriver还提供了另一套写法,即统一调用find_element() 方法,通过By来声明定位的方法,并且传入对应定位方法的定位参数

    from selenium.webdriver.commom.by import By      
    browser.find_element(By.ID,"kw")
    browser.find_element(By.NAME,'wd')
    browser.find_element(By.CLASS_NAME,"s_ipt")
    browser.find_element(By.TAG_NAME,"input")
    browser.find_element(By.LINK_TEXT,"cheese")
    browser.find_element(By.PARTIAL_LINK_TEXT,"for")
    browser.find_element(By.XPATH,"//*[@id='kw']")
    browser.find_element(By.CSS_SELECTOR, "#kw")

     简单元素操作

    • clear()    清除文本
    • send_keys(*value) 模拟按键输入
    • click()      单击元素

    鼠标事件


    现在的web产品中,提供了更丰富的鼠标交互方式,例如鼠标右击、双击、悬停、鼠标拖动等功能,在webdriver中,将这些关于鼠标的操作封装在ActionChains 类提供

    • perform()     执行所有ActionChains中存储的行为
    • context_click()        右击
    • double_click()         双击
    • drag_and_drop()     拖动
    • move_to_element()   鼠标悬停
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.action_chains import ActionChains
    def get_browser():
        browser=webdriver.Firefox()
        ## get方法会一直等到页面被完全加载,然后才会继续程序,通常测试会在这里选择 
        browser.get("http://www.baidu.com")
        #定位到要右击的元素
        right_click=browser.find_element_by_css_selector("#kw")
        #对定位到的元素执行鼠标右击的操作
        ActionChains(browser).context_click(right_click).perform()
  • 相关阅读:
    fabric.js 学习
    前端基础回顾
    ubuntu16 mysql 远程连接
    Django rest_framework API 随笔
    django 学习笔记
    vue 返回上一页在原来的位置
    Django mysql 改用pymysql 驱动
    Material-UI
    设置placeholder的样式
    Cookie、session和localStorage、以及sessionStorage之间的区别
  • 原文地址:https://www.cnblogs.com/yan-2010/p/14229946.html
Copyright © 2011-2022 走看看