selenium学习笔记
selenium 学习笔记
元素定位
-
find element(元素定位)
- by id :
driver.find_element_by_id('xx').send_keys('xxx')
- 如何确定id唯一?在检查中搜索id
- by name :
driver.find_element_by_name('xx')
- 属性重复时 有些浏览器不会报错
- by class :
driver.find_element_by_class_name('xxxxx').click()
- 若class name中有空格,则容易无法定位,此时不要使用这种定位方法。(可以考虑xpath
- selenium中的元素必须可视,若被联想输入框或弹出的框遮住 则无法操作。
- by linktext(少) :
driver.find_element_by_link_text('text中的文字') #一般用于超链接
- text文字若唯一 才能使用模糊输入
- by tag name(少) :
driver.find_element_by_tag_name('')
- 一般用于不发生变化的链接文字,比如百度页面的 新闻 贴吧 视频 等tag(在整个页面中要唯一)
- xpath :
driver.find_element_by_xpath()
- 概述
- xpath是xml path 语言的缩写,是一门在xml文档中查找信息的语言
- 在xml文档中,通过元素和属性进行导航,主要用于在xml中选择节点
- xpath语言可以用于在整个文档中沿着path或step来寻找指定节点
- 比css灵活,速度稍慢
- xml节点:
- 节点之间有层级关系,节点之间构成了路径。
- 分类
- 绝对路径:绝对路径的结尾往往是唯一的
/html/body/div[1]/div[2]/a
- 相对路径:
//*[@id='kw']
被定位的这个属性必须是唯一的//input[@name="wd"]
- 模糊定位
- driver.find_element_by_xpath("//input[starts-with(@id,'btncusse')]").click()
- driver.find_element_by_xpath("//input[contains(@id,'btncusse')]").click()
- driver.find_element_by_xpath("//input[ends-with(@id,'btncusse')]").click()
- 绝对路径:绝对路径的结尾往往是唯一的
- 概述
- css :
driver.find_element_by_css()
- HTML :
driver.find_elemnt_by_class
- by id :
-
find elements(元素查找)
- find elements是有返回值的(返回一个list)
- 查找的类型与element同步
- eg:
- tag_list = driver.find_elements_by_tag_name('xxx') # 不能在这后面再直接引用别的方法
- tag_list[7].send_keys('xxx')