id |
惟一的 |
name |
元素的名称 |
class name |
元素的类名 |
tag name |
标签,不推荐,重复率过高 |
link text |
文本连接 |
partial link text |
对文本连接的一种补充 |
xpath |
相对/绝对路径 |
css selector |
css定位 |
1. 经过id或name定位css
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
经过元素所带的id和name属性对元素定位:html
2. 经过class name或tag name定位web
经过元素中带的class属性定位浏览器
brower.find_element_by_class_name("iki-edit")
经过元素中的tag标签订位,这种定位方式极不靠谱,不推荐采起此种方式。less
brower.find_element_by_tag_name("div")
附加说明,若是class属性含有空格,那么取其中一个不重复的字段就能够了,例子:spa
<a title="新建版本" tabindex="200" class="icon-only icon-add" data-remote="true" data-method="get" href="/projects/bk_community/versions/new">新建版本</a>
其中class的属性值为“icon-only icon-add”,取其中“icon-only”、“ icon-add”均可以,但最好是取其中惟一的。.net
brower.find_element_by_class_name("icon-add")
3. 经过link text和partial link text定位scala
<a href="http://news.baidu.com" target="_blank" class="mnav">新闻</a>
经过text link定位元素code
brower.find_element_by_link_text("新闻")
经过partial link text定位元素,当文字连接很长时,能够经过此方式取其中一部分,只要取的部分能够做为惟一标识。orm
brower.find_element_by_partial_link_text("新")
4. xpath定位
此种定位方式需知晓xpath路径,经过火狐浏览器就能够知道,具体如何操做,可参考个人另外一篇博文
https://blog.csdn.net/qq_30990097/article/details/81325681
调用的方法为:
brower.find_element_by_xpath("/html/body/div[1]/div/div[2]/ul/li[2]")
也能够经过相对路径自行填写,例如:
//*[@id="su"]/form/span/input #经过上三级目录的id属性定位
固然也能够经过某一级的name属性定位。
5. CSS定位
css定位有点麻烦,方法不少。以百度输入框html代码为例:
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
定义浏览器
仍是以百度的输入框html代码为示例:
定位代码:
示例html代码:
定位代码:
option:nth-child(1)就是第几个孩子的意思。