Selenium元素定位的7种方式
1) find_element_by_id 采用id属性进行定位
2) find_element_by_name 采用name属性进行定位
3) find_element_by_class_name 采用class属性进行定位
4) find_element_by_link_text专门用于定位超链接,完整的超链接文字
5) find_element_by_partial_link_text
专门用于定位超链接,对link的一种补充,有些文本链接较长,只要一部分有唯一标示就行
6) find_element_by_xpath (xpath分绝对路径和相对路径)
7)find_element_by_css_selector(CSS属性定位可以比较灵活地选择控件的任意属性,定位方式也会比xpath快)
Ø find_element_by_id 采用id属性定位
代码执行
Ø find_element_by_name 采用name属性定位 以淘宝网站为例。 通过name定位输入框
代码:
Ø find_element_by_class_name 采用class属性进行定位 以京东为例
代码执行
Ø find_element_by_link_text 专门用于定位超链接,完整的超链接文字
以京东为例,在京东首页点击“京东金融”文字链接,跳转到京东金融页面。
代码执行
Ø find_element_by_partial_link_text
专门用于定位超链接,对link的一种补充,有些文本链接较长,只要一部分有唯一标示就行
注:在页面的部分文字必须是页面特定的、唯一的
以京东为例:要点击页面文字“京东金融”,在代码只要输入金融就行,要在页面具有唯一性
代码执行:
Ø find_element_by_xpath xpath分绝对路径和相对路径查找
相对路径查找
按ctrl+f键自己按层级标签去写路径,每写一次路径都会有高亮文本,以此提示自己写的路径是正确定位到的。如果对绝对路径定位还是很模糊,可看最下面的正确路径提示。
如下图:每写一层标签都会有高亮文本,提示自己按层级写的是正确的,如果不正确就不会有高亮文本显示
层级目录定位到地图,写完的绝对路径为"html/body/div/div/div/div[3]/a[3]“
代码
Xpath的相对路径——有时候绝对路径太长不方便,可采用相对路径方式去定位。相对路径前要加//(双斜杠)。
定位hao123如下图
以相对路径方式实现定位:找到hao123的上所属标签,此例子的hao123的所属标签是div ,其id=‘u1’
代码:
Ø find_element_by_css_selector
css主要有三种方式(在此以火狐浏览器为例)
1) 根据#和id值定位
2) . 属性值定位
3) [name=’name属性’]定位
4) 在代码中间加空格或大于号定位 绝对路径查找
根据 # 和id属性值定位 以百度输入框为例,id的属性值为kw
代码:
根据 .和class属性值定位
在火狐浏览器查看器的输入框输入.s_ipt,注意.和s_ipt之间没有空格,然后在输入框里回车,检查能不能定位到,如果能定位到,在写代码。此例的class属性值为s_ipt
定位的是百度输入框
代码
根据[name=’name属性’]定位
和前面两个一样,先在查看器输入框输入代码按回车键进行定位。此处的name属性值为wd
代码执行