• 元素定位


    1、id:find_element_by_id()  

    当id属性 是唯一的不变的时候,可使用这个定位元素。

    如:<input id="username" class="ant-input ant-input-lg" value="" data-__meta="[object Object]" autocomplete="off" type="text"/>

     find_element_by_id("username")

    2、name:find_element_by_name()

    当name属性 是唯一的不变的时候,可使用这个定位元素。

    如:<input id="username" name="kw" class="ant-input ant-input-lg" value="" data-__meta="[object Object]" autocomplete="off" type="text"/>

    find_element_by_name("kw")

    3、class:find_element_by_class_name()  

    当class 属性 是唯一的不变的时候,可使用这个定位元素。

    如:<input id="username" name="kw" class="ant-input ant-input-lg" value="" data-__meta="[object Object]" autocomplete="off" type="text"/>

    find_element_by_class_name("ant-input ant-input-lg")

    4、tag(标签名):find_element_by_tag_name()  

    很少用这个定位,一般标签名都会有多个。

    如:<input id="username" name="kw" class="ant-input ant-input-lg" value="" data-__meta="[object Object]" autocomplete="off" type="text"/>

    find_element_by_tag_name("input")

     5、link(链接):find_element_by_link()/find_element_by_partial_link()

    对于一个元素属性有:href=’',表示他是一个超链接,就可以通过这个区定位

    如: <a href="#/data/query/allitem">

    find_element_by_link("#/data/query/allitem")  ---精确匹配

    find_element_by_partial_link("#/data/query")  ---模糊匹配

    6、css定位:find_element_by_css_selector()

    比较灵活可以随便选择属性定位。

    如:<input id="username" name="kw" class="ant-input ant-input-lg" value="" data-__meta="[object Object]" autocomplete="off" type="text"/>

    通过id:find_element_by_css_selector("input[id="username"]")

    通过name:find_element_by_css_selector("input[name="kw"]")

    ............

    其他属性大致一样

    7、xpath定位:find_element_by_xpath()

    通过元素的路径来查找这个元素。

    ① 属性和标签

    如:<input id="username" name="kw" class="ant-input ant-input-lg" value="" data-__meta="[object Object]" autocomplete="off" type="text"/>

    通过id:find_element_by_xpath("//*[@id='username']")    ----  *  表示查询所有标签中id为username的元素

    通过name:find_element_by_css_selector("//input[@name=‘kw’]")   ----  input 表示指定查找input标签中name为kw的元素

    .......

    通过其他属性查询大致一样。

    ②层级

    若一个元素的属性不是很明显,无法直接定位到,这是可以先找到他的父节点,然后再找下个层级就可以定位到了。若父节点还是不明显,就再往上一层级找........

    如:

    通过节点查找:find_element_by_xpth("//span[@class='ant-input-wrapper']/input)

    通过再上一层级查找:find_element_by_xpth("//div[@class='ant-form-item-control']/span/input")

    ③索引

    一个元素他的兄弟元素跟他的标签一样,这时无法通过层级查找到,这时就可以通过索引的方式(因为有先后差别),索引是从1开始的

     

    通过索引查找:find_element_by_xpth("//u1[@role='menu']/li[1]")

    ④逻辑运算

    支持多个属性逻辑运算的,与(and)、或(or)、非(not)

    如:<input id="username" name="kw" class="ant-input ant-input-lg" value="" data-__meta="[object Object]" autocomplete="off" type="text"/>

    find_element_by_xpath("//*[@id='username' and name=‘kw’]")    ----  and运算

    ⑤模糊匹配

    find_element_by_xpath("*[contains(text(),'hao123')]")    -----模糊匹配功能

    find_element_by_xpath("*[contains(@id,'username')]")  -----模糊匹配某个属性

    find_element_by_xpath("*[start-with(@id,'username')]")  ------模糊匹配已什么开头

    .........

    ⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳

  • 相关阅读:
    再收藏一篇: oracle批量绑定 forall bulk collect用法以及测试案例
    Dll中导出导入时巧用条件编译指令共享头文件
    Oracle不支持在select语句中调用自定义函数时使用自定义类型作参数?
    (Alan Murta)编制的多边形集合运算软件包(general polygon clipping library,简称GPC)
    MSDN:CFile和CStdioFile区别以及CString中的'\r\n'
    REF CURSOR 小结
    Oracle存储过程中执行DDL操作
    Oracle在存储过程中,如何删除和创建表?
    收藏:关于表名也动态的动态SQL文章
    用Select查询结果创建ACCESS表
  • 原文地址:https://www.cnblogs.com/cxx1/p/7066860.html
Copyright © 2020-2023  润新知