您的位置:首页 > 编程语言 > Python开发

Python+Selenium(webdriver常用API)

2018-03-21 16:16 239 查看

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

加载浏览器驱动: webdriver.Firefox()

打开页面:get()

关闭浏览器:quit()

最大化窗口: maximize_window()

设置窗口参数:set_window_size(600,800)

后退到前一页: back()

前进到后一页: forward()

刷新页面: refresh()

获得title并打印
元素定位:
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.introClass选择器,选择class=“intro”的所有元素
#id#firstnameId选择器,选择id=“firstname”的所有元素
**选择所有元素
ElementP元素所有<p>元素
Element>elementdiv>input选择父元素为<div>元素之后的所有<input>元素
Element+elementDiv+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
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代码:

# 引入ActionChains类
from selenium.webdriver.common.action_chains im
4000
port ActionChains
# ......
# 定位到要右击的元素
element=driver.find_element_by_css_selector("#kw")
#右击操作
ActionChains(driver).context_click(element).perform()
# ......

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()

# 通过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")

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种方式):

# 使用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)

24.窗口截图:get_screenshot_as_file()
25.关闭窗口:close()
26.生成随机数:radint()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  webdriver常用API