Selenium学习之路02-Webdriver API元素定位
2021-05-28 01:00
标签:实战 查找 截取 target 输入框 baidu def self nbsp 大家对于我们在界面UI测试的时候流程非常熟悉吧,比如一个百度搜索,我们首先打开www.baidu.com的地址,然后肉眼找到搜索框,输入想要输入的关键字,然后在点击搜索按钮,就会返回我们想要搜索的结果列表。 而对于自动化测试来说,最基本的就是”肉眼查找”,也就是定位元素。而自动化工具如何找到元素了?对此WebDriver提供了八种元素定位方法。分别可以通过ID,name,class,tag,link,partial link,XPath,CSS进行元素的定位,除此之外还有通过By来声明定位的方法。 以下为截选的输入框的一段HTML 1.id定位 通过HTML元素的id来进行元素的查找,写法如下 2.name定位 通过HTML元素的name来进行元素的查找,写法如下 3.class定位 通过HTML元素的class来进行元素的查找,写法如下 4.tag定位 通过HTML元素的class来进行元素的查找,写法如下 5.link定位 link即链接,专门用来定位文本链接,同前面几个方法有所区别,我们截取一段链接的HTML代码 用法如下: 6.partial link定位 partial link是对link的一种补充,比如有些文本非常长,而我们此时只需要截取文本的一段使用partial link来进行定位就可以节约工作量,用法如下 7.Xpath定位 Xpath是一种在XML文档中定位元素的定位语言。因为HTML可以看做是XML的一种实现,所以Selenium用户可以使用这种强大的语言在WEB应用中进行定位。由于内容较多,所以我会单独写一篇来描述Xpath的定位 8.CSS定位 CSS(英文全称:Cascading Style Sheets)是一种用来表现HTML或XML等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 选择器 例子 描述 .class .s_ipt 类选择器,选择所有class=”s_ipt”的元素 #id #kw Id选择器,选择所有id=”kw”的元素 * * 所有元素 element Input 元素所有的元素 element>element span>input 选择父元素为的所有元素 element+element span+input 选择同一级中紧接在元素之后的所有元素 [attribute=value] [target=_blank] 选择target=”_blank的所有元素” 以上面HTML部分代码为例进行元素定位 a.通过class属性进行定位: b.通过id进行定位 c.通过标签名进行定位 d.通过父子关系进行定位 e.通过属性值进行定位 9.用By定位元素 如果有看过以上定位API的源码会发现实际都是通过find_element()统一实现的,所以我们也可以通过By来声明定位的方法 具体如下 在此摘抄下find_element_by_id的源码 参考书籍: Selenium 2自动化测试实战 基于Python语言 ,虫师编著 Selenium学习之路02-Webdriver API元素定位 标签:实战 查找 截取 target 输入框 baidu def self nbsp 原文地址:https://www.cnblogs.com/sgcm/p/14781478.htmlinput type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
find_element_by_id(“kw”)
find_element_by_name(“wd”)
find_element_by_class_name(“s_ipt”)
find_element_by_tag_name(“input”)
a href="http://map.baidu.com" target="_blank" class="mnav c-font-normal c-color-t">地图a>
find_element_by_link_text(“地图”)
find_element_by_partial_link_text(“地”)
xml version="1.0"?>
span id="s_kw_wrap" class="bg s_ipt_wr quickdelete-wrap">
span class="soutu-btn">span>
input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
a href="javascript:;" id="quickdelete" title="清空" class="quickdelete" style="top: 0px; right: 0px; display: none;">a>
span class="soutu-hover-tip" style="display: none;">按图片搜索span>
input>
span>
find_element_by_css_selector(“.s_ipt”)
find_element_by_css_selector(“.kw”)
find_element_by_css_selector(“input”)
find_element_by_css_selector(“span>input”)
find_element_by_css_selector(“[autocomplete="off"]”)
find_element(By.ID,”kw”)
find_element(By.NAME,”wd”)
find_element(By.CLASS_NAME,”s_ipt”)
find_element(By.TAG_NAME,”input”)
find_element(By.LINK_TEXT,”新闻”)
find_element(By.PARTIAL_LINK_TEXT,”新”)
find_element(By.XPATH,”//*[@class=”s_ipt”]”)
find_element(By.CSS_SELECTOR,”.s_ipt”)
def find_element_by_id(self, id_):
"""Finds an element by id.
:Args:
- id\_ - The id of the element to be found.
:Returns:
- WebElement - the element if it was found
:Raises:
- NoSuchElementException - if the element wasn‘t found
:Usage:
element = driver.find_element_by_id(‘foo‘)
"""
return self.find_element(by=By.ID, value=id_)
文章标题:Selenium学习之路02-Webdriver API元素定位
文章链接:http://soscw.com/index.php/essay/88444.html