一、操作元素基本方法:
1、操作浏览器基本方法:
1.1打开网页
driver = webdriver.Firefox()
driver = webdriver.Ie()
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
1.2设置休眠
import time
time.sleep()
1.3页面刷新
driver.refresh()
1.4页面切换
driver.back() 返回上一页
driver.forward() 切换到下一页
1.5设置窗口大小
driver.set_window_size(540,960) 设置浏览器大小为540*960
driver.maximize_window() 设置浏览器窗口最大化
1.6截屏
driver.get_screenshot_as_file('保存地址')
1.7退出
driver.close() 关闭当前窗口
driver.quit() 用于结束进程,关闭所有窗口
2、常用8种元素定位(Firebug和firepath)
2.1 id定位 find_element_by_id(self,id)
2.2 name定位 find_element_by_name(self,name)
2.3 class定位 find_element_by_class_name()
2.4 tag定位 find_element_by_tag_name(self,name)
2.5 link定位 find_element_by_link_text(self,link_text)
2.6 partial_link定位 find_element_by_partial_link_text(self,link_text)
2.7 xpath定位 find_element_by_xpath(self,xpath)
2.8 css定位 find_element_by_css_selector(self,css_selector)
这八种是复数形式(2.8和2.27章节有介绍)
2.9 id复数定位 find_elements_by_id(self, id_)
2.10 name复数定位 find_elements_by_name(self, name)
2.11 class复数定位 find_elements_by_class_name(self, name)
2.12 tag复数定位 find_elements_by_tag_name(self, name)
2.13 link复数定位 find_elements_by_link_text(self, text)
2.14 partial_link复数定 find_elements_by_partial_link_text(self, link_text)
2.15 xpath复数定位 find_elements_by_xpath(self, xpath)
2.16 css复数定位 find_elements_by_css_selector(self, css_selector
这两种是参数化的方法,对上面8种的总结(4.2有具体介绍)
2.17 find_element(self, by='id', value=None)
2.18 find_elements(self, by='id', value=None)
3、操作元素(键盘和鼠标事件)
3.1简单操作
点击(鼠标左键)页面按钮 click()
清空输入框 clear()
输入字符串 send_keys()
3.2 submit提交表单
submi()一般用于模拟回车键
driver.find_element_by_id('kw').submit()
3.3键盘事件
模拟键盘的操作需要先导入键盘模块: from selenium.webdriver.common.keys import Keys
模拟enter键,可以用send_keys(Keys.ENTER)
driver.find_element_by_id('kw').send_keys(Keys.ENTER)
3.4 其他常见的键盘操作
键盘F1到F12 send_keys(Keys.F1) 把F1改为对应的快捷键
复制Ctrl+C send_keys(Keys.CONTROL,'c')
粘贴Ctrl+V send_keys(Keys.CONTROL,'v')
全选Ctrl+A send_keys(Keys.CONTROL,'a')
剪切Ctrl+X send_keys(Keys.CONTROL,'x')
制表键Tab send_keys(Keys.TAB)
3.5鼠标悬停事件
鼠标悬停事件需先导入模块 from selenium.webdriver.common.action_chains import ActionChains
perform()执行所有ActionChains中的行为
move_to_element()鼠标悬停
百度设置按钮例子:
from selenium import webdriver
from selenium webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 鼠标悬停在搜索设置按钮上
mouse = driver.find_element_by_link_text('设置')
ActionChains(driver).move_to_element(mouse).perform()
3.6除了常用的鼠标悬停事件外,还有
右击鼠标 context_click()
双击鼠标 double_click()
3.7多窗口,句柄(handle)
获取当前页面的句柄 driver.current_window_handle
获取当前所有句柄 driver.window_handles