一系列元素定位方法:
1. id find_element_by_id()
2. name find_element_by_name()
3. class name find_element _by_class_name()
4. tag name find _element_by_tag_name()
//最不靠谱,相同tag name元素太多
5.link text find_element_by_link_text()
//通过文字链接定位
6. partial link text find_element_by_partial_link_text()
//通过文字链接的部分定位,简单有效
7. xpath find_element_by_xpath()
//绝对目录与相对目录,可以做布尔逻辑运算,但存在明显缺点:(1)性能差,定位元素的性能要比其它大多数方式差;(2)不够健壮,XPath会随页面元素布局的改变而改变;(3)兼容性不好,不同浏览器下对XPath的实现是不一样的;
8. css selector find_element_by_css_selector()
//使用选择器为元素绑定属性,选择器常见语法:
(1) * ,通用元素选择器,匹配任何元素;
(2)E,标签选择器,匹配所有使用E标签的元素;
(3).info ,class选择器,匹配所有class属性中包含info的元素;
(4)#footer, id选择器,匹配所有id属性等于footer的元素;
(5)E,F,多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔;
(6)E F,后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用逗号分隔;
(7)E>F ,子元素选择器,匹配所有E元素的子元素F;
(8)E+F, 毗邻元素选择器,匹配紧随E元素之后的同级元素F(只匹配第一个);
(9)E~F, 同级元素选择器,匹配所有在E元素之后的同级F元素;
(10)E[att = 'val'],属性att的值为val的E元素(区分大小写);
(11)E[att^ = 'val'],属性att的值以val开头的E元素(区分大小写);
(12)E[att $= 'val'],属性att的值以val结尾的E元素(区分大小写);
(13)E[att *= 'val'],属性att的值包含val的E元素(区分大小写);
(14)E[att 1= 'val1'][att 2*= 'val2'],属性att1的值为val1,att2的值包含val2(区分大小写);
(15)E:contains('xxx'), 内容中包含XXX的E元素;
(16) E:not(s), 匹配不符合当前选择器的任何元素