一、导入库
from selenium import webdriver from selenium.webdriver.common.keys import Keys #键盘输入 from selenium.webdriver.common.action_chains import ActionChains #鼠标操作 from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC
二、基本函数
-窗口、页面操作
1.加载浏览器驱动: webdriver.Firefox()
2.打开页面:get()
3.关闭浏览器:quit()
4.关闭窗口并退出驱动:close()
5.最大化窗口: maximize_window()
6.设置窗口参数:set_window_size(600,800)
7.后退到前一页: back()
8.前进到后一页: forward()
9.刷新页面: refresh()
10.多表单切换:switch_to.frame()
11.多窗口切换:switch_to.window()
12.当前句柄:current_window_handle
13.所有句柄:window_handles
14.窗口截图:get_screenshot_as_file(file_path)
15.当前窗口坐标:get_window_position()
16.当前窗口的长宽:get_window_size()
17.当前页面的URL:current_url
18.设置隐式等待:implicitly_wait(time)
19.查看浏览器名字:nema
20.获取当前页面标题:title
-警告窗操作
警告框处理:switch_to_alert()
text:获取警告窗文本
accept():接受现有警告框
dismiss():解散现有警告框
send_keys(keysToSend):发送文本至警告
-cookie处理:
1.get_cookies():获得所有cookie信息
2.get_cookie(name):返回字典的key为“name”的cookie信息
3.add_cookie(cookie_dict):添加cookie。“cookie_dict”指字典对象,必须有name和value值
3.delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”
4.delete_all_cookies():删除所有cookie信息
-元素定位:
1.id定位:find_element_by_id()
2.name定位:find_element_by_name()
3.class定位:find_element_by_class_name()
4.tag定位:find_element_by_tag_name()
5.link定位:find_element_by_link_text()
6.partial link 定位: find_element_by_partial_link_text()
7.CSS定位:find_element_by_css_selector()
8.Xpath定位:绝对路径:find_element_by_xpath("/html/body/div[x]/div[x]/div/div/dl[x]/dt/a")
元素属性: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’]")
-判断元素状态
is_selected():判断元素是否被选中
is_displayed():判断元素是否显示
is_enabled():判断元素是否被使用
size:返回元素的大小
text:获取元素的文本
tag_name:返回元素的tagname
-鼠标操作
定位元素:elemengt_click = driver.find_element_by_xpath(“xpath”)
单击:ActionChains(driver). click(elemengt_click) .perform()
双击:ActionChains(driver). double_click(elemengt_click) .perform()
右击:ActionChains(driver). context_click(elemengt_click) .perform()
拖放:ActionChains(driver). drag_and_drop(elemengt_click) .perform()
悬停:ActionChains(driver). move_to_element(elemengt_click).perform()
按下:ActionChains(driver). click_and_hold(elemengt_click) .perform()
移动指定位置:ActionChains(driver). move_by_offset(x,y) .perform()
移动指定元素位置: ActionChains(driver).move_to_element_with_offset(to_element, xoffset, yoffset).perform()
-键盘操作
1.清除文本:clear()
2.提交表单(相当于"回车"):submit()
3.模拟按键输入:send_keys(*value)send_keys(keysToSend):发送文本至警告框
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,‘v’) = control + v
send_keys(Keys.CONTROL,‘a’) = Ctrl+A
send_keys(Keys.F1) = 键盘F1
-滚动条设置
使用scrollTop滑动到底部
js = “var action=document.documentElement.scrollTop=10000”
driver.execute_script(js)
使用scrollTop滑动到顶部
js = “var action=document.documentElement.scrollTop=0”
driver.execute_script(js)
使用scrollTo设置位置
driver.set_window_size(600, 600)
js = “window.scrollTo(100,450);”
driver.execute_script(js)