总结了Python+selenium常用的一些方法函数,以后有新增再随时更新:

加载浏览器驱动: 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

元素定位:

id定位:find_element_by_id()

name定位:find_element_by_name()

class定位:find_element_by_class()

tag定位:find_element_by_tag_name()

link定位:find_element_by_link_text()

partial link 定位: find_element_by_partial_link_text()

Xpath定位:

绝对路径:find_element_by_xpath("绝对路径")

元素属性:find_element_by_xpath("//unput[@id='kw']")

层级与属性结合:find_element_by_xpath("//form[@id='loginForm']/ul/input[1]")

逻辑运算符:find_element_by_xpath("//input[@id='kw' and@class='s_ipt']")

CSS定位:find_element_by_css_selector()

选择器

例子

描述

.class

.intro

Class选择器,选择class=“intro”的所有元素

#id

#firstname

Id选择器,选择id=“firstname”的所有元素

*

*

选择所有元素

Element

P

元素所有

元素

Element>element

div>input

选择父元素为


Element+element

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

perform():执行所有ActionsChains中存储的行为

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代码:

python selenium linux教程 selenium python api_选择器

# 引入ActionChains类

from selenium.webdriver.common.action_chains import ActionChains

# ......

# 定位到要右击的元素

element=driver.find_element_by_css_selector("#kw")

#右击操作

ActionChains(driver).context_click(element).perform()

# ......

python selenium linux教程 selenium python api_选择器

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

Python代码:

# 引入Key模块

from selenium.webdriver.common.keys import Keys

# ......

# ctrl+a全选输入框内容

driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'a')

# ......

16.元素等待:

(1)显示等待

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

# ......

element=WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'kw')))

# ......

(2)隐式等待

from selenium.common.exceptions import NoSuchElementException

# ......

drive.implicitly_wait(10)

# ......

17.定位一组元素:

find_elements_by_id()

find_elements_by_name()

find_elements_by_class()

find_elements_by_tag_name()

find_elements_by_link_text()

find_elements_by_partial_link_text()

find_elements_by_xpath()

find_elements_by_css_selector()

python selenium linux教程 selenium python api_选择器

# 通过tag name定位元素:driver.find_elements_by_tag_name('option')[1].click()

# 通过xpath定位元素:

driver.find_elements_by_xpath("//input[@type='checkbox']")

# 通过css定位元素:

driver.find_elements_by_css_selector('input[type=checkbox]')

# 使用selector:

slector=Select(driver.find_element_by_css_selector("[name='CookieDate']"))

slector.select_by_index(1)

# slector.select_by_visible_text("留一年")

# slector.select_by_value("1")

python selenium linux教程 selenium python api_选择器

18.多表单切换:switch_to.frame()

19.多窗口切换:switch_to.window()

当前句柄:current_window_handle

所有句柄:window_handles

20.警告框处理:switch_to_alert()

text:返回所有alert/confirm/prompt中的文字信息

accept():接受现有警告框

dismiss():解散现有警告框

send_keys(keysToSend):发送文本至警告框

21.文件上传:send_keys()

driver.find_element_by_css_selector(".uploadpic").send_keys(r'E:\picture\s.png')

22.cookie处理:

get_cookies():获得所有cookie信息

get_cookie(name):返回字典的key为“name”的cookie信息

add_cookie(cookie_dict):添加cookie。“cookie_dict”指字典对象,必须有name和value值

delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”

delete_all_cookies():删除所有cookie信息

23.滚动条设置(2种方式):

python selenium linux教程 selenium python api_选择器

# 使用scrollTop滑动到底部

js = "var action=document.documentElement.scrollTop=10000"

driver.execute_script(js)

# 使用scrollTo设置位置

driver.set_window_size(600, 600)

js = "window.scrollTo(100,450);"

driver.execute_script(js)

python selenium linux教程 selenium python api_选择器

24.窗口截图:get_screenshot_as_file()

25.关闭窗口:close()

26.生成随机数:radint()