zoukankan      html  css  js  c++  java
  • webUI自动化定位方法

    1、webdriver元素定位方式
      id、name、class_name--->元素属性定位
      tag_name--->元素标签名称
      link_text、partial_link_text--->超链接定位(a标签)
      xpath--->元素路径定位
      css--->css选择器定位

    2、元素定位
      1、id定位---->id属性是唯一的。
        find_element_by_id()
      2、name定位
        find_element_by_name()
      3、class_name定位
        find_element_by_class_name()
      4、tag_name定位--->通过元素的标签名称来定位,如:<input>
        find_element_by_tag_name()
      5、link_text定位--->只定位超链接<a>标签
        find_element_by_link_text()
      6、partial_link_text定位
        find_element_by_partial_link_text()
      7、Xpath定位
        绝对路径:/开头,中间不能跳跃 如:/html/body/div[1]/div[1]/div[3]/div/div/form/span[1]/input
        相对路径://开头,后边跟标签名称或* ,所有属性必须以@修饰,如:"//*[@id='kw']"
        层级与属性:父子标签 如://span[@class='bg s_ipt_wr']/input
        属性与逻辑:两个属性以上时使用,使用逻辑符号and连接 如://input[@id='kw' and @class='su']/span/input
        属性
          //*[text()="xxx"]
          //*[starts_with(@id,"xxx")] 开头
          //*[contains(@classname,"xxx")] 包含
        find_element_by_xpath()
      8、CSS定位
        css定位常用策略
        id选择器 #id
        class选择器 .classname
        元素选择器 input
        属性选择器 (input)[id='kw']
        层级选择器 p>input或p input
        css延申
          input[type^='p'] type属性以p字母开头的元素
          input[type$='p'] type属性以p字母结尾的元素
          input[type*='p'] type属性包含p字母开头的元素
        find_element_by_css_selector()
      9、By类的方法
        from selenium.webdriver.common.by import By
        find_element(By.ID,"kw")
      10、elements--->返回符合条件的所有标签,列表格式,指明下标
        find_elements_by_tag_name()

    3、自动化实现步骤
      1、导包:from selenium import webdriver import time
      2、实例化浏览器:driver=webdriver.Chrome()
      3、打开网页:driver.get(url)
      4、调用元素定位方法: driver.find_element_by_id("")
      5、使用send_keys()方法发送数据:.send_keys("")
      6、暂停3秒:time.sleep(3)
      7、关闭浏览器:quit()

    # 1、导包
    # from selenium import webdriver
    # import time

    # 2、实例化浏览器
    # driver = webdriver.Chrome()

    # 3、打开项目-url
    # driver.get("http://www.baidu.com")
    # driver.get("http://www.youdao.com/")
    # driver.get("https://email.163.com/")

    # 隐式等待10秒
    # driver.implicitly_wait(10)

    # 4、id定位元素-给文本框传值
    # driver.find_element_by_id("kw").send_keys("selenium")

    # name定位
    # driver.find_element_by_name("wd").send_keys("webdriver")

    # class_name定位
    # driver.find_element_by_class_name("s_ipt").send_keys("webdriver")

    # tag_name定位
    # driver.find_element_by_tag_name("a").click()

    # link_text定位
    # driver.find_element_by_link_text("登录").click()

    # partial_link_text定位
    # driver.find_element_by_partial_link_text("登").click()

    # Xpath定位
    # 绝对路径
    # driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[3]/div/div/form/span[1]/input').send_keys("自动化")
    # 相对路径
    # driver.find_element_by_xpath('//input[@id="kw"]').send_keys("web自动化")

    # css定位
    # id选择器 #id
    # driver.find_element_by_css_selector("#kw").send_keys("接口自动化")
    # class选择器 .classname
    # driver.find_element_by_css_selector(".s_ipt").send_keys("自动化")
    # 元素选择器
    # driver.find_element_by_css_selector("")
    # 属性选择器
    # driver.find_element_by_css_selector("[id='kw']").send_keys("测试工程师")
    # 层级选择器
    # driver.find_element_by_css_selector("span>input[id='kw']").send_keys("工程师")

    # elements--->返回符合条件的所有标签,列表格式,指明下标
    # driver.find_elements_by_tag_name("input")[7].send_keys("webdriver")

    # By类的方法
    # from selenium.webdriver.common.by import By
    # driver.find_element(By.ID,"kw").send_keys("新型定位")

    # 5、暂停3秒
    # time.sleep(3)
    # 6、关闭浏览器
    # driver.quit()
  • 相关阅读:
    ssize_t与size_t的前世今生
    jQuery 中的事件参数传递机制
    链表的container_of 疑惑
    c 语言使用疑惑小记
    IQueryFilter的WhereClause详解
    给自己鼓励...
    什么是闭包,我的理解
    WCF 第五章 行为 为服务终结点行为实现一个消息检测器
    WCF 第五章 行为 事务之事务服务行为
    WCF 第四章 绑定 wsHttpBinding
  • 原文地址:https://www.cnblogs.com/siyu0123/p/12756131.html
Copyright © 2011-2022 走看看