他就是打开一个浏览器,对浏览器进行完全的控制.所有的数据获取通过js实现,它有一个js的控制台,js可以控制浏览器数据.
目录
准备工作:
引入所需代码块:
from selenium import webdriver
创建浏览器对象(打开):
driver = webdriver.Firefox() # Firefox浏览器
# driver = webdriver.Firefox("驱动路径")
driver = webdriver.Chrome() # Chrome浏览器
driver = webdriver.Ie() # Internet Explorer浏览器
driver = webdriver.Edge() # Edge浏览器
driver = webdriver.Opera() # Opera浏览器
driver = webdriver.PhantomJS() # PhantomJS
设置浏览器大小:可选择是否使用。
driver.set_window_size(480, 800)
文本操作:
输入:
driver.find_element_by_id("kw").send_keys("selenium") # 模拟按键输入
点击:
driver.find_element_by_id("su").click() # 单击元素
清除文本:
driver.find_element_by_id("kw").clear() # 清除文本
提交:
search_text = driver.find_element_by_id('kw')
search_text.send_keys('selenium')
search_text.submit()
获取文本:
driver.find_element_by_id("kw").text() 获取元素的文本。
#is_displayed() 是否可见
浏览器界面操作:
- 浏览器后退,前进:
driver.back() #后退
driver.forward() #前进
- 刷新
driver.refresh() # 刷新
鼠标操作:
perform(): 执行所有 ActionChains 中存储的行为;
context_click(): 右击;
double_click(): 双击;
drag_and_drop(): 拖动;
move_to_element(): 鼠标悬停
键盘操作:
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+V)
send_keys(Keys.F1) 键盘 F1
……
send_keys(Keys.F12) 键盘 F12
弹框操作:
alert = driver.switch_to_alert()
text:返回 alert/confirm/prompt 中的文字信息。
accept():接受现有警告框。
dismiss():解散现有警告框。
send_keys(keysToSend):发送文本至警告框。keysToSend:将文本发送至警告框。
下拉框选择:
from selenium import webdriver
from selenium.webdriver.support.select import Select
from time import sleep
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('http://www.baidu.com')
sel = driver.find_element_by_xpath("//select[@id='nr']")
Select(sel).select_by_value('50') # 显示50条
文件上传:
driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')
# 定位上传按钮,添加本地文件
cookie操作:
WebDriver操作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信息
调用JavaScript代码:
js="window.scrollTo(100,450);"
driver.execute_script(js) # 通过javascript设置浏览器窗口的滚动条位置
窗口截图:
driver.get_screenshot_as_file("D:\\baidu_img.jpg")
# 截取当前窗口,并指定截图图片的保存位置
关闭浏览器:
close() 关闭单个窗口
quit() 关闭所有窗口
参考:学习资料来源于