美文网首页软件测试
WebDriver 元素定位实例

WebDriver 元素定位实例

作者: 6ada42df4c4a | 来源:发表于2020-03-20 16:36 被阅读0次

    首先是id和name定位

    id 和 name 是我们最常用的定位方式,因为大多数元素都有这两个属性,而且在对控件的 id 和 name 命名时一般为了使其有意义也会取不同的名字,所以通常都是唯一的

    image.png

    以上图为例,可以看出第一个input控件的id是“gs_htif0”,所以通过id定位元素语句如下:

    driver.find_element_by_id("gs_htif0")

    上图中的第二个input控件可以看出它的name属性值是“btnK”,通过name定位元素:

    driver.find_element_by_name("btnK")

    通过tag name和class name定位

    image.png

    通过元素中带的class属性对元素进行定位:

    class=”jhp_big”: find_element_by_class_name(“jhp_big”)
    class=”s_ipt”: find_element_by_class_name("s_ipt")

    通过tag标签名对对元素进行定位:

    tag=<div>: find_element_by_tag_name("div")
    tag=<form>: find_element_by_tag_name("form")
    tag=<input>: find_element_by_tag_name("input")

    Link text和partial link text定位:

    image.png

    通过link text定位元素:

    find_element_by_link_text("新 闻")
    find_element_by_link_text("贴 吧")
    find_element_by_link_text("一个很长的文字连接")

    通过partial link text也可以定位到上面几个元素:

    find_element_by_partial_link_text("新")
    find_element_by_partial_link_text("吧")
    find_element_by_partial_link_text("一个很长的")

    Xpath和css定位:

    后续会补充xpath是如何进行定位的


    img.png

    如何同时定位一组元素?

    webdriver 可以很方便的使用 find_element 方法来定位某个特定的对象,不过有时候我们却需要定位一 组对象,WebElement 同样提供了定位一组元素的方法 find_elements。
    模拟场景:页面上有20个复选框需要勾选,有了find_elements方法后就可以用以下代码来实现了,而不需要去一一定位20个复选框

    # 选择页面上所有的 tag name 为 input 的元素
    inputs = driver.find_elements_by_tag_name('input')
    #然后从中过滤出 tpye 为 checkbox 的元素,单击勾选
    for input in inputs:
        if input.get_attribute('type') == 'checkbox':
            input.click()
    

    相关文章

      网友评论

        本文标题:WebDriver 元素定位实例

        本文链接:https://www.haomeiwen.com/subject/lkphyhtx.html