Python+Selenium(webdriver常用API)
加载浏览器驱动: webdriver.Firefox()
打开页面:get()
关闭浏览器:quit()
最大化窗口: maximize_window()
设置窗口参数:set_window_size(600,800)
后退到前一页: back()
前进到后一页: forward()
刷新页面: refresh()
获得title并打印
# coding:utf-8 from selenium import webdriver title = driver.title print title #拿当前title名称进行预期比较 if title == u"百度一下,你就知道": print "title yes!" else: print "title no!" #获得当前URL并打印 url = driver.current_url print url
元素定位:
选择器 例子 描述
.class .intro Class选择器,选择class=“intro”的所有元素
#id #firstname Id选择器,选择id=“firstname”的所有元素
* * 选择所有元素
Element P 元素所有<p>元素
Element>element div>input 选择父元素为<div>元素之后的所有<input>元素
Element+element Div+input 选择同一级中紧接在<div>元素之后的所有<input>元素
[attribute=value] [target=_blank] 选择target=”_blank”的所有元素
选择器
例子
描述
.class
.intro
Class选择器,选择class=“intro”的所有元素
#id
#firstname
Id选择器,选择id=“firstname”的所有元素
选择所有元素
Element
元素所有<p>元素
Element>element
div>input
选择父元素为<div>元素之后的所有<input>元素
Element+element
Div+input
选择同一级中紧接在<div>元素之后的所有<input>元素
[attribute=value]
[target=_blank]
选择target=”_blank”的所有元素
10.清除文本:clear()
11.模拟按键输入:send_keys(*value)
12.单击元素:click()
13.提交表单(相当于"回车"):submit()
14.鼠标事件:
ActionChains 类提供了鼠标操作的常用方法:
引入ActionChains类:from selenium.webdriver.common.action_chains import ActionChains
context_click() 右击
——如:RightClick = driver.find_element_by_id("id")
ActionChains(driver).context_click(RightClick).perform()
double_click() 双击
——如:DoubleClick = driver.find_element_by_name("name")
ActionChains(driver).double_click(DoubleClick).perform()
drag_and_drop(source, target) 鼠标拖放
——source:鼠标按下的源元素;target:鼠标释放的目标元素
——如:element = driver.find_element_by_name("name")
target = driver.find_element_by_name("name")
ActionChains(driver).drag_and_drop(element, target).perform()
move_to_element() 鼠标悬停在一个元素上(出现下拉列表框)
——如:above = driver.find_element_by_xpath("xpath路径")
ActionChains(driver).move_to_element(above).perform()
click_and_hold() 按下鼠标左键在一个元素上
——如:left = driver.find_element_by_name("name")
ActionChains(driver).click_and_hold(left).perform()
Python代码:
15.键盘事件:
send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.eNTER) 回车键(Enter)
send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+(Ctrl+A))
send_keys(Keys.F1) 键盘F1
……
send_keys(Keys.F12) 键盘F12
send_keys(Keys.BACK_SPACE)
删除键(BackSpace)
send_keys(Keys.SPACE)
空格键(Space)
send_keys(Keys.TAB)
制表键(Tab)
send_keys(Keys.ESCAPE)
回退键(Esc)
send_keys(Keys.eNTER)
回车键(Enter)
send_keys(Keys.CONTROL,'a')
全选(Ctrl+A)
send_keys(Keys.CONTROL,'c')
复制(Ctrl+C)
send_keys(Keys.CONTROL,'x')
剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v')
粘贴(Ctrl+(Ctrl+A))
send_keys(Keys.F1)
键盘F1
……
send_keys(Keys.F12)
键盘F12
Python代码:
16.元素等待:
(1)显示等待
(2)隐式等待
from selenium.common.exceptions import NoSuchElementException # ...... drive.implicitly_wait(10) # ......
17.定位一组元素:
18.多表单切换:switch_to.frame()
19.多窗口切换:switch_to.window()
当前句柄:current_window_handle
所有句柄:window_handles
20.警告框处理:switch_to_alert()
21.文件上传:send_keys()
driver.find_element_by_css_selector(".uploadpic").send_keys(r'E:\picture\s.png')
22.cookie处理:
23.滚动条设置(2种方式):
24.窗口截图:get_screenshot_as_file()
25.关闭窗口:close()
26.生成随机数:radint()