find_element_by_id()
采用id属性进行定位。例如在百度页面中输入关键字 Selenium 进行搜索。百度部分关键html源码如下:
百度输入框和百度一下的按钮都有id,那么定位代码如下:
find_element_by_xpath()
xpath是XML路径语言,它可以用来确定xml文档中的元素位置,通过元素的路径来完成对元素的查找。HTML就是XML的一种实现方式,所以xpath是一种非常强大的定位方式。
获取xpath、css_selector路径方法
打开谷歌浏览器-->打开百度-->键盘点击F12--点击定位位置-->点击源码位置-->右件copy
绝对路径
如百度搜索框的绝对路径xpath定位:
相对路径(属性标签等)
搜索框还可以利用id和name属性去定位:
标签名input也可以定位,只要在该标签内,任意属性都可以,比如搜索框的maxlength属性:
注:如果元素的单个属性无法确定其唯一性,可以用and连接多个属性去确定
find_element_by_cssselector()
CSS属性定位可以比较灵活地选择控件的任意属性,定位方式也会比xpath快
注:class是用.标记,id是用#标记
find_element_by_tag_name ()
html标签,如input、a、form等
一般定位如下:find_element_by_tag_name("input"),因为一个html一个标签存在多个因此这种定位方式用的比较少
find_element_by_partial_link_text()
定位标签<a>:
说明:复数定位方式每次取到的都是具有相同类型属性的一组元素,所以返回的是一个list值
如上图需要定位到时视频,再点击视频链接
#以下Element 返回单值,Elements复数返回列表值
源码举例
以上为常用的四种js定位方式都需要执行的就execute_script())
源码举例
来源:百度文库