Selenium操作无界面浏览器,以及关闭方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium操作无界面浏览器,以及关闭方式相关的知识,希望对你有一定的参考价值。
参考技术A Chrome: https://npm.taobao.org/mirrors/chromedriverFirefox: https://github.com/mozilla/geckodriver/releases
from selenium import webdriver
# 实例化ChromeOptions,并然后设置 set_headless 或 add_headless
options = webdriver.ChromeOptions()
options.set_headless() # options.add_argument('-headless')
options.add_argument('--disable-gpu') # 禁用GPU加速
# 打开无界面chrome浏览器
driver = webdriver.Chrome(options=options)
from selenium import webdriver
# 实例化FirefoxOptions,并然后设置 set_headless 或 add_headless
options = webdriver.FirefoxOptions()
options.set_headless() # options.add('-headless')
options.add_argument("--disable-gpu") #禁用GPU加速
driver = webdriver.Firefox(options=options)
1.driver.close() #源码:Closes the current window。翻译:关闭当前窗口
2. driver.quit() #源码:Quits the driver and close every associated window。翻译:退出驱动程序并关闭所有相关窗口
Selenium和PhantomJS 终极最全使用总结
参考技术A PhantomJS 和 Chromedriver操作方式以及功能一致
主要区别 PhantomJS 无界面模式 节省内存
Chromedriver 完全模仿浏览器 消耗内存
PhantomJS 截取的是网页的完整页面,包括下拉进度条的内容
Chromedriver只截取弹框浏览器的可视化内容页面
001 先找到文本输入框元素,输入内容
002 找到搜索按钮 进行搜索
给输入框赋值: element.send_keys()
操作点击事件: element.click()
find_element和find_elements的区别
带s的返回的是列表
不带s的是返回列表中的第一个元素
selenium处理cookie
页面等待 : https://www.jianshu.com/p/835bd3e96f5b
01 强制等待
time.sleep(10) 强制要求在时间内出现,否则报错,不能很好的控制时间,浪费资源
02 隐示等待
隐性等待对整个driver的周期都起作用,所以只要设置一次即可
隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。
driver.implicitly_wait(30) # 隐性等待,最长等30秒
03 显示等待
这里需要特别注意的是until或until_not中的可执行方法method参数,很多人传入了WebElement对象,如下:
这是错误的用法,这里的参数一定要是可以调用的,即这个对象一定有 call () 方法,否则会抛出异常:
TypeError: \'xxx\' object is not callable
switch方法切换的操作
01窗口切换
iframe是html中常用的一种技术,即一个页面中嵌套了另一个网页,selenium默认是访问不了frame中的内容的,对应的解决思路是
思路:先定位并切换至iframe内,再进行你安排前元素操作 最后可通过切换至窗口,从iframe中切换出iframe 进入到页面
当你触发了某个事件之后,页面出现了弹窗提示,处理这个提示或者获取提示信息方法:driver.switch_to.alert() # 跟frame一样的处理方式!
页面前进和后退
selenium 三大重要功能
三个可以同时使用
selenium的优缺点
• selenium能够执行页面上的js,对于js渲染的数据和模拟登陆处理起来非常容易
• selenium由于在获取页面的过程中会发送很多请求,所以效率非常低,所以在很多时候需要酌情使用
以上是关于Selenium操作无界面浏览器,以及关闭方式的主要内容,如果未能解决你的问题,请参考以下文章