selenium基础实战之定位网页元素
selenium基础实战之定位网页元素
selenium定位网页元素
- 元素定位方法
- find_element_by_id()
- find_element_by_name()
- find_element_by_class()
- find_element_by_class_name()
- find_element_by_tag_name()
- find_element_by_link_text()
- find_element_by_partial_link_text()
- find_element_by_xpath()
- find_element_by_css_selector()
- 注意:find_element_by_xxx 找的是第一个符合条件的标签,find_elements_by_xxx 找的是所有符合条件的标签
- 浏览器创建
- Selenium 支持非常多的浏览器,如Chrome、Firefox、Edge等,还有Android、BlackBerry等手机端的浏览器。另外,也支持无界面浏览器 PhantomJS
from selenium import webdriver
browser = webdriver.Chrome() # 用的最多是谷歌浏览器
browser = webdriver.Firefox()
browser = webdriver.Edge()
browser = webdriver.PhantomJS()
browser = webdriver.Safari()
- 打开网页
driver.get('https://www.baidu.com/')
使用python判断是否正确
browser.title 或者 browser.current_url
- 定位元素的8种方法
| 类型 | 示例 |
|---|---|
| id | find_element_by_id() 采用id属性进行定位 |
| name | find_element_by_name() 定位方式和id定位类似,id,name和class一般在网页中都至少会有其中的一种 |
| class name | find_element_by_class_name() 定位方式和id定位类似,id,name和class一般在网页中都至少会有其中的一种 |
| tag name | find_element_by_tag_name() 通过标签名去定位,用的少;例如 find_element_by_tag_name('div') |
| link text | find_element_by_link_text() 通过超链接内容定位,元素内容;例如:<a href="#">xxx </a>,则 find_element_by_link_text('xxx') |
| partial link text | find_element_by_partial_link_text() 超链接内容定位,局部定位,模糊匹配,和link text 类似 |
| css selector | find_element_by_css_selector() 根据css选择器定位,一般class是用 . 标记,id用 # 标记,定位方式也会比xpath块。 例如:find_element_by_css_selector('input[id='search']') # 规则:元素[属性=值] 技巧:通过firebug的拷贝css路径 |
| xpath | find_element_by_xpath() xpath 是XML路径语言,通过元素的路径来完成对元素的查找,HTML就是XML的一种实现方式,在FriePath插件里copy对应的xpath地址。 xpath语法:"//" 是全部的意思,即全文扫描;"/"相邻的意思;"*" 指所有元素;".." 表示元素的父节点;"." 表示当前节点 ;"@" 选取属性 绝对路径定位:从标签开始依次往下进行查找 相对路径:利用元素属性进行xpath定位 技巧:通过firebug的拷贝css路径 |
- 8种选择器注意的问题:如果定位元素报错,原因如下:
- 根据定位取不到
- 多个元素根据下标超出范围,没有0,从1开始
- 解决办法:换其它方式定位元素
- 定位元素后的方法
| 方法 | 作用 |
|---|---|
| clear() | 清空字符串 |
| send_keys() | 输入框输入字符串 |
| click() | 点击事件,点击按钮,超链接 |
| submit() | 提交表单 |
| forward() | 页面前进 |
| back() | 后退页面(就是浏览器的向左、向右箭头) |
| maximize_window() | 窗口最大化 |
- 定位后元素的属性
| 属性 | 作用 |
|---|---|
| tag_name | 标签名 |
| text | 文本内容 |

浙公网安备 33010602011771号