美文网首页软件测试
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