定位
=====================================
元素定位是一个做WEB UI自动化经常使用的,非常重要,但掌握并不十分困难
HTML
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTML是一种标记语言,在前端中的作用是告诉浏览器展示什么内容,比如展示一个输入框,展示一个表格或者按钮等
CSS是用来告诉浏览器怎么展示这些元素,比如展示成什么颜色,大小以及一些其它特性
Javascript是用来做交互的,比如点击一个按钮后,提交数据发送给服务器,或者增加/移除一个元素
我们在selenium webdriver中定位元素,了解下HTML就可了
看下面的一个页面
::
DEMO
ID、name、class name...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
除了xpath和css selector外,其它的定位方法都是比较简单的,我们一一说明
*通过ID定位:*
ID就像是学生的学号或者身份证,一般不会重复,所以如果需要定位的元素有这个属性,用ID定位就可以了
针对我们上方的html中的名字输入框,代码如下:
::
driver.find_element_by_id('firstname')
*通过name定位:*
name就像是每个学生的姓名,因为可能会重名(比如说一班和二班都有叫小明的),所以不是特别可靠,使用时需要注意
针对我们上方的html中的名字输入框,代码如下:
::
driver.find_element_by_name('firstname')
* 通过classname定位:*
classname是html元素中的class属性,可能有多个如 ,使用时,选择一个class属性就可以,比如button或者submit
我们上面的html中,使用classname是无法选择到姓名输入框的,因为会选到多个,所以会默认返回第一个元素,建议拿不准时不要使用
除此之外还有通过tab_name、link_text等 ,不过并不常用
*XPath:*
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
可参考:http://www.runoob.com/xpath/xpath-syntax.html