selenium基本使用

selenium基本使用

浏览器基本操作

1. 打开浏览器

chrome = webdriver.Chrome()

2. 进入网页

chrome.driver.get('url')

3. 关闭浏览器

chrome.quit()
chrome.close()

4. 控制浏览器

操作 方法
设置窗口大小 chrome.set_window_size(480,800)
全屏显示 chrome.maximize_window()
浏览器后退 chrome.back()
浏览器前进 chrome.forward()
刷新 chrome.refresh()

元素定位

定位方法 使用方法
id定位 find_element_by_id()

find_element(By.ID,"")
name定位 find_element_by_name()

find_element(BY.NAME,"")
class定位 find_element_by_class()

find_element(BY.CLASS,"")
tag定位 find_element_by_tag_name()

find_element(BY.TAG_NAME,"")
link定位 find_element_by_link_text()

find_element(BY.LINK_TEXT,"")
partial_link_text定位 find_element_partial_link_text()

find_element(BY.PARTIAL.LINK_TEXT,"")
xpath定位 find_element_xpath()

find_element(BY.XPATH,"")
css定位 find_element_css_selector()

find_element(BY.CSS_SELECTOR,"")

WebElement接口常用方法

操作 方法
清除输入框中的内容 clear()
输入内容 send_keys()
点击 click()
提交 submit()
返回元素的尺寸 size
返回元素的文本 text
获取属性值 get_attribute(name)
is_displayed() 设置该元素是否用户可见

鼠标事件

鼠标操作的方法封装在ActionChains 类中,使用前先导入

from selenium.webdriver import ActionChains 

鼠标操作的常用方法:

操作 方法
右击 context_click()
双击 double_click()
拖动 drag_and_drop(source,target)
          源元素,目标元素
悬停 move_to_element()
perform() 执行所有的ActionChains中存储的行为
#!/usr/bin/python3
# -*- condig:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
chrome = webdriver.Chrome()
chrome.get('https://www.baidu.com/')
right_click = chrome.find_element_by_id('su')
#执行鼠标操作
ActionChains(chrome).context_click(right_click).perform()

键盘事件

键盘操作的方法封装在Keys() 类中,使用前先导入

from selenium.webdriver.common.keys import Keys

鼠标操作的常用方法:

操作 方法
输入 send_keys()
删除键 send_keys(Keys.BACK_SPACE)
空格键 send_keys(Keys.SPACE)
制表键 send_keys(Keys.TAB)
回退键 send_keys(Keys.ESCAPE)
回车键 send_keys(Keys.ENTER)
ctrl+A send_keys(Keys.CONTROL,'a')
ctrl+C send_keys(Keys.CONTROL,'c')
ctrl+X send_keys(Keys.CONTROL,'x')
ctrl+V send_keys(Keys.CONTROL,'v')
ctrl+F1 send_keys(Keys.CONTROL,'F1')
... ...
ctrl+F12 send_keys(Keys.CONTROL,'F12')
#!/usr/bin/python3
# -*- condig:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
chrome = webdriver.Chrome()
chrome.get('https://www.baidu.com/')
chrome.find_element_by_id('kw').send_keys('selenium')
chrome.find_element_by_id('kw').send_keys(Keys.BACKSPACE)

等待

1. 强制等待

import time
time.sleep(5)

2. 隐式等待

driver.implicitly_wait(5)

3. 显示等待
等待某个条件成立时继续执行,否则在达到最大时长时抛出异常(TimeoutException)

WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions_None)

driver:浏览器驱动  
timeout:最长超时时间,s  
poll_frequency=0.5:检测的时间间隔,默认0.5s  
ignored_exceptions_None:超时后的异常信息  

WebDriverWait():一般由until()或until_not()方法配合使用
until(method,message='')
调用此方法,提供驱动程序作为一个参数,直到返回值为True
until_not(method,message='')
调用此方法,提供驱动程序作为一个参数,直到返回值为False

多框架切换

switch_to.frame():将当前定位的主题切换frame/iframe
switch_to.default_content():跳回最外层

多窗口切换

switch_to.window()
current_window_handle:获得当前窗口句柄
window_handles:返回所有窗口的句柄到当前会话

警告(弹窗)处理

switch_to_alert
text:返回alert/confirm/prompt中的文字信息
accept():接受现有警告框
dismiss():解散现有警告框
send_keys(keysTOSend):发送文本至警告框

上传下载

上传文件:
send_keys上传

下载文件:(Firefox浏览器)

fp = webdriver.FirefoxProfile()  
fp.set_preference("broser.download.folderList",2)  
fp.set_preference("broser.download.manager.showWhenStarting",False)
fp.set_preference("broser.download.dir",os.getcwd())
fp.set_preference("broser.helperApps.neverAsk.saveToDisk","application/octet-stream")

broser.download.folderList
设置0代表浏览器的默认下载路径,2表示保存到指定目录
broser.download.manager.showWhenStarting
是否显示开始:True,False
broser.download.dir"
指定保存目录

窗口截图

get_screenshot_as_file("保存位置")

操作Cookie

操作 方法
获取所有的cookie信息 get_cookies()
返回字典的key为“name”的cookie信息 get_cookie(name)
添加cookie add_cookie(cookie_dict)
删除cookie delet_cookie(name,optionsString)
删除所有cookie delete_all_cookies()

调用JavaScript

WebDriver提供了execute_script()方法来执行javascript代码

posted @ 2020-05-31 01:37  静心&得意  阅读(188)  评论(0编辑  收藏  举报