一、webdriver的API与定位元素
| 元素定位核心部分 |
||
| 元素名称 | webdriver API | 说明 |
| id | find_element_by_id() | id定位 |
| name | find_element_by_name() | name定位 |
| class name | find_element_by_class_name() | class_name定位 |
| tag name | find_element_by_tag_name() | |
| link text | find_element_by_link_text() | 精准定位 |
| partial link text | find_element_by_partial_link_text() | 模糊定位 |
| xpath | find_element_by_xpath() | xpath定位 |
| css selector | find_element_by_css_selector() | css定位 |
| 元素操作方法 | |
| 方法 | 说明 |
| clear | 清除元素内容 |
| send_keys | 模拟按键输入 |
| click | 点击 |
| submit | 提交表单 |
二、使用xpath定位元素
1:XML路径语言:用来确定XML文档中某部分位置的语言;
2:XPath用于在XML文档中通过元素和属性进行导航
3:XPath是一个W3C标准
4:对xml/html有一定的了解
| 表达式 | 结果 |
| /xxx | 选取根节点xxx |
| /xxx/yyy | 根据绝对路径选择元素 |
| //xxx | 整个文档扫描,找到所有xxx元素 |
| //xxx/yyy | 所有父元素为xxx的yyy元素 |
| . | 选取当前节点的父元素节点 |
| .. | 选取父元素地址 |
| //xxx[@id] | 选取所有xxx元素中有id属性的元素 |
| //xxx[@id=yyy] | 选取所有xxx元素id属性为yyy的元素 |
| 表达式 | 结果 |
| //*[count(xxx)=2] | 统计xxx元素个数=2的节点 |
| //*[local-name()='xxx'] | 找到tag为xxx的元素 |
| //*[starts-with(local-name(),'x')] | 找到所有tag以x开头的元素 |
| //*[contains(local-name(),'x')] | 找到所有tag包含x的元素 |
| //*[string-length(local-name())=3] | 找到所有tag长度为3的元素 |
| //xxx|//yyy | 多个路径查找 |
三、鼠标和键盘事件
ActionChains类与输入事件
1:from selenium.webdriver.common.action_chains import ActionChains
2:ActionChains(driver):用于生成模拟用户行为
3:perform():执行存储行为
| 鼠标事件 | |
| 表达式 | 说明 |
| context_click | 右击事件 |
| double_click | 双击事件 |
| drag_and_drop | 拖动 |
| move_to_element() | 鼠标停留在一个元素上 |
| click_and_hold | 按下鼠标左键在一个元素上 |
| 键盘事件:send_keys() | |
| from selenium.webdriver.common.keys import Keys | |
| 表达式 | 说明 |
| send_kyes(Kyes.BACK_SPACE) | 退格键 |
| send_kyes(Kyes.CONTRL.'a') | 全选 |
| send_kyes(Kyes.CONTRL.'v') | 粘贴 |
| send_kyes(Kyes.CONTRL.'c') | 复制 |
| send_kyes(Kyes.CONTRL.'x') | 剪切 |
| send_kyes(Kyes.ENTER) | 回车 |