selenium自动化测试-By定位及如何肯定元素惟一

上一篇文章,介绍了xpath定位,咱们基本了解了元素的8种定位方法。今天咱们要学习的是By定位及如何肯定元素惟一。
 
By定位
有时候咱们不知道用哪一种方法来定位元素,By定位能够根据实际场景设定定位策略。
By定位和以前学习的八种定位方法差很少,只不过是写法上的不一样。
使用By定位,须要导入By类,from selenium.webdriver.common.by import By
语法以下:
 
咱们以百度搜索框为例,看下用By定位是怎么写的
By定位只是把8种定位统一成一个写法。
 
若是以为导入By类麻烦,又想把8种写法统一块儿来,有办法么,固然,咱们接下来介绍简化版的:
By.ID = 'id'
By.NAME = 'name'
By.LINK_TEXT = 'link text'
By.PARTIAL_LINK_TEXT = 'partial link text'
By.TAGE_NAME = 'tag name'
By.CLASS_NAME = 'class name'
By.CSS_SELECTOR = 'css selector'
By.XPATH = 'xpath'
用百度搜索框为例,写简化版的定位
是否是发现,这种写法更方便呢。
 
定位元素的惟一性
咱们在写自动化脚本过程当中,会遇到由于元素不是惟一致使定位元素失败的场景,
那么咱们能够先肯定此元素是否惟一,再来定位元素。
以百度搜索框为例:
1、在源码中查找
1.浏览器打开开发者模式(F12),定位到百度搜索框上,发现源码以下:
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
2.以前css定位讲过,class="s_ipt"、id="kw",css定位能够写成input.s_ipt,input#kw,
那么快捷键Crtl+F,在开发者工具左下角搜索框输入.s_ipt 或 #kw,回车进行搜索
 
3.搜索到了会高亮显示,发现只有一条结果,那么咱们能够肯定这个元素是惟一的,放心的定位了。有时候也会搜索出多个结果,这个时候咱们回车键依次查看,元素是否惟一。
 
2、在控制台查找
在控制台console中肯定元素的惟一,主要是使用JavaScript获取HTML DOM元素的方法,语法以下:
  • id 获取:document.getElementById()
  • class 获取:document.getElementsByClassName()
  • name 获取:document.getElementsByName()
  • tag 获取:document.getElementsByTagName()
  • CSS 获取:document.querySelector()
 
 
1.在开发者工具中,切换到console一栏,以下:
二、以百度浏览器输入框为例
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
其中id="kw",那么能够写成document.getElementById('kw')
在console下输入document.getElementById('kw'),而后回车
只返回了一条数据,且是咱们要查找的元素,那么咱们能够肯定此元素是惟一的,能够放心的定位了。
 
下一篇咱们将介绍定为一款定位神器
 
若是学习中有什么疑问,欢迎关注公众号:ITester软件测试小栈
相关文章
相关标签/搜索