selenium安装步骤,selenium下载安装
目录
硒安装,配置及连接seleniumChromeDriverGeckoDriverPhantomJS(无界面浏览器,新版硒中已被弃用)铬和火狐浏览器的无界模式基本使用声明对象访问页面查找节点节点交互动作链执行爪哇岛描述语言获取节点信息切换基本框架延时等待前进和后退饼干选项卡管理异常硒安装,配置及连接硒官方网站:http://www.seleniumhq.org
GitHub:https://GitHub。com/selenium HQ/selenium/tree/master/py
PyPI:https://PyPI。python。org/PyPI/selenium
官方文档:http://硒-python。阅读文档。超正析象管
中文文档:http://硒-python-zh。阅读文档。超正析象管
安装:pip3安装硒
硒需要配合浏览器及其驱动配合
铬驱动器官方网站:https://个站点。谷歌。com/a/chromium。org/chrome驱动程序(墙)
:https://chrome驱动。存储。谷歌API。com/index。超文本标记语言
2:http://NPM。淘宝。org/mirrors/chrome driver/
版本映射表:https://博客。csdn。net/呼兰_ same/文章/详情/51896672
浏览器中查看铬版本(版本67.0.3396.99(正式版本)基于人的本质构建,运行在Ubuntu 16.04 (64位)),安装相应的铬驱动器版本(2.38,2.39.2.40)
将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里:sudo mv chromedriver /usr/bin
GeckoDriver GitHub:https://GitHub。com/Mozilla/GeckoDriver
:https://github。com/Mozilla/geckodriver/releases
下载相应版本,将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里sudo mv geckodriver /usr/bin
命令行下直接执行壁虎命令测试:壁虎
大蟒中测试:
从硒导入webdriverbrowser=webdriver .火狐()幻影(无界面浏览器,新版硒中已被弃用)官方网站:http://phantomjs.org
官方文档:http://个幻想曲。组织/快速启动。超文本标记语言
:http://个幻想曲。org/下载。超文本标记语言
应用程序接口接口说明:http://个幻想曲。org/API/命令行。超文本标记语言
铬和火狐浏览器的无界模式铬无界模式(铬合金变为火狐浏览器就是火狐浏览器无界模式):
来自硒。网络驱动。chrome。选择导入选项铬_选项=选项()铬_选项。add _ argument(-headless )#无头参数#设置代理chrom _ options。add _ argument(-proxy-server=http://127。0 .0 .1:9842 )# chrome _ options。add _ argument(-disable-GPU )#禁用地面动力装置加速driver=webdriver .铬合金(铬合金选项=铬合金选项)另一种:
选项=网络驱动程序.火狐选项()选项。set _ headless()#选项。add _ argument(-headless )#选项。add _ argument(-disable-GPU )driver=web driver .Firefox(Firefox _ options=options)设置代理未完.# 简单代理从硒导入网络驱动chrome _ options=网络驱动.chrome选项()chrome _ options。add _ argument(-proxy-server=http://127。0 .0 .1:9832 )brower=web驱动程序.铬合金(铬合金选项=铬合金选项)#认证代理基本使用从硒导入selenium的web驱动程序。网络驱动。常见。从硒进口。网络驱动。常见。键从selenium.webdriver.support导入密钥来自硒的预期条件为EC。网络驱动。支持。等待导入WebDriverWaitbrowser=webdriver .Chrome() # 1 .声明浏览器对象试试:浏览器。得到( https://www。百度一下。com’)# 2。获取()方法请求网页输入=浏览器。find _ element _ by _ id( kw )# 3 .查找节点input.send_keys(Python) # 4 .节点操作输入.发送键(键. ENTER)wait=web驱动等待(浏览器,10)等待。直到(EC。element _ located的存在性(.ID, content _ left ))打印(浏览器。current _ URL)打印(浏览器。get _ cookies())打印(浏览器。page _ source)# 5 .返回信息最后:browser.close() # 6 .关闭浏览器对象,标签页。放弃关闭浏览器。声明对象从硒导入webdriverbrowser=webdriver .铬()#相应支持的浏览器访问页面浏览器。得到( https://www。淘宝。com’)查找节点元素是查找单个节点,变为元素将查找多个节点,返回列表
Find_element() #通用方法,它需要传入两个参数:find method By和value,例如:find_element(By。ID,ID)Find _ element _ by _ ID()Find _ element _ by _ name()Find _ element _ by _ XPath()# XPath选择器Find _ element _ by _ link _ text()Find _ element _ by _ partial _ link _ text()Find _ element _ by _ tag _ name()Find _ element _ by _ class _ name()Find _ element _ by _ CSS _ selector()# CSS选择器节点在交互输入文本时使用:send_Keys()方法。可以使用keys类输入特殊键,该类继承自selenium.webdriver.common.keys
清除文本时使用:clear()方法。
用:Click()方法单击按钮。
动作介绍文档:http://selenium-python.readthedocs.io/api.html #模块-selenium . web driver . remote . web element
动作链拖放
使用拖放来移动一个元素,或将其放入另一个元素:
element=driver . find _ element _ by _ name( source )target=driver . find _ element _ by _ name( Target )from selenium . web driver import action chains action _ chains=action chains(driver)action _ chains . drag _ and _ drop(element,Target)。执行()动作链操作参考文档:http://selenium-python.readthedocs.io/api.html #模块-selenium . web driver . common . action _ chains。
执行javaScript execute_script()方法,模拟javaScript的运行,实现api没有提供的功能。
例如,将进度条下拉到底部:browser . execute _ script( window . scroll to(0,document.body.scrollheight))
获取节点信息get_attribute():获取节点的属性。
文本属性:获取文本值
属性:获取节点id
Location:获取该节点在页面中的相对位置。
Tag_name属性:获取标记名,
属性大小:获取节点的大小,即宽度和高度。
切换框架Selenium打开页面后,默认在父框架中操作。此时,如果页面中有子框架,则无法获取子框架中的节点。
Switch_to.frame()方法来切换框架
延迟隐式等待:
当搜索元素或元素没有立即出现时,隐式等待会等待一段时间再寻找DOM,如果没有发现异常,默认时间为0。
Browser.implicit _ wait (10):设置等待时间
显示:
指定最长等待时间和条件。如果满足条件,将返回搜索到的节点。如果没有,等待直到满足条件或者超过最大等待时间(抛出异常)。
首先,引入WebDriverWait对象,并指定最长等待时间。然后,调用其until()方法,并传入等待条件expected_conditions。
例如:
Wait=webdriverwait (browser,10)input=wait . until(EC . presence _ of _ element _ located((by . id, q ))button=wait . until(EC . element _ to _ be _ clickable((by . CSS _ _
标题是一个内容。title_contains标题包含一个内容。当presence_of_element_located节点加载时,传入定位元组,如(by.id, p )visibility_of _ element _ located节点可见,传入定位元组visibility _ of可见。传入节点对象所有元素的存在位置所有节点都被加载到元素中一个节点文本包含一个文本元素值一个节点值包含一个文本框架一个元素位置加载和切换元素位置节点的不可见性。不可见的element_to_be_clickable节点可以通过点击来判断一个节点是否还在DOM中。可以判断页面是否被刷新过。可以选择element_to_be_selected节点,可以选择传递节点对象element_located_to_be_selected节点,可以选择传递位置元组element_selection_state_to_be传递节点对象和状态,等式返回True。否则,返回false element _ located _ selection _ state _ to _ be。如果相等,则返回True。否则返回Falsealert_is_present是否有参数警告更多等待条件和使用文档:http://selenium-python.readthedocs.io/api.html #模块-selenium . web driver . support . expected _ conditions
而forward和back back()方法是向后的。
forward()方法前进。
Cookies browser.get _ cookies():获取cookie
browser . Add _ cookie({ name : name , domain: www.zhihu.com , value: Germey}):添加cookie
Browser.delete_all_cookies():空cookies
manage execute _ script( window . open()):打开一个新标签页。
Window_handles属性:获取当前打开的所有标签,并返回标签代码列表。
Switch_to_window()方法:切换页签,其中参数为页签的代号。
selenium.common.exceptions中的异常
类,可以参考官方文档:http://selenium-python.readthedocs.io/api.html # module-selenium.com mon . exceptions