selenium可通过定位元素来模拟用户动作,从而实现自动操作浏览器
不同浏览器定位方式:
1.火狐浏览器用Firebug插件检查页面元素
2.谷歌chrome浏览器自带页面分析功能可直接检查页面元素
3.IE浏览器也自带页面分析功能:按F12键在浏览器下方显示开发者工具窗口,选择【箭头】再单击页面中期望获取的元素
selenium提供八种find_element_by方法用于定位元素
find_elements_by返回的将是一组元素
find_element_by…方法返回与属性值唯一匹配的第一元素,要是没有元素与之匹配,会抛出NoSuchElementException异常
(1)find_element_by_id(id) 通过元素的ID属性值来定位元素
eg:driver.find_element_by_id('search')
(2)find_element_by_name(name) 通过元素的name属性值来定位元素
eg:driver.find_element_by_name('q')
(3)find_element_by_class_name(name) 通过元素的class名来定位元素,name:元素的类名
eg:driver.find_element_by_class_name('input-text')
(4)find_element_by_tag_name(name) 通过元素的tag name名来定位元素,此方法用来定位所有的banner图片
eg:driver.find_element_by_tag_name('input')
(5)find_element_by_xpath(xpath) 通过xpath来定位元素,img图片较多时,用此方法来定位banner图片,用标签下alt属性值来定位元素
eg:driver.find_element_by_xpath('//form[0]/div[0]/input[0]')
(6)find_element_by_css_selector(css_selector) 通过css选择器来定位元素
eg:driver.find_element_by_css_selector('#search')
(7)find_element_by_link_text(link_text) 通过元素标签对之间的文本信息来定位元素
link_text:文本信息
eg:driver.find_element_by_link_text('Log In')
(8)find_element_by_partial_link_text(partial_link_text)通过元素标签对之间的部分文本信息来定位元素
eg:driver.find_element_by_partial_link_text('Log')