1.下载模块及驱动下载
1.1selenium模块下载命令
pip install selenium
1.2驱动下载
下载浏览器对应版本的驱动,一般下载最新版本就好了,下面是chorme和firefox的驱动,下载完把可执行的exe文件放到python环境里,否则在调用时要手动添加路径。
chormedriver下载地址
geckodriver下载地址
2.模块的简单使用
selenium模块实现对浏览器的自动化测试,以chorme为例,其他浏览器的用法基本一样。
Chorme=webdriver.Chrome() #创建一个chorme浏览器对象
Chorme.get('https://www.baidu.com') #浏览器打开对应网址
Chorme.find_element_by_id('kw').send_keys('lol')#向搜索框输入lol
Chorme.find_element_by_id('su').click() #点击按钮触发
Chorme定位元素的方法
element返回第一个值,elements返回所有值
定位一个元素 | 定位多个元素 | 含义 |
---|---|---|
find_element_by_id | find_elements_by_id | 通过属性id定位 |
find_element_by_name | find_elements_by_name | 通过属性name定位 |
find_element_by_class_name | find_elements_by_class_name | 通过属性class进行定位 |
find_element_by_tag_name | find_elements_by_tag_name | 通过tag标签定位 |
find_element_by_link_text | find_elements_by_link_text | 通过完整超链接定位 |
find_element_by_partial_link_text | find_elements_by_partial_link_text | 通过部分链接定位 |
find_element_by_css_selector | find_elements_by_css_selector | 通过css选择器进行定位 |
find_element_by_xpath | find_elements_by_xpath | 通过xpath表达式定位 |
常用方法
text()获得节点文本值,click()模拟鼠标点击,clear()清空文本,send_keys()输入文本值
定位到当前页面
网页跳转后,要重新定位
windows = Chorme.window_handles #获取所有窗口
Chorme.switch_to.window(windows[-1])
#windows[-1]定位到当前的窗口,windows[0]以前的窗口,switch_to实现重定位
滚动条的使用
js='var q=document.documentElement.scrollTop=100000'
chorme.execute_script(js)
无头浏览器
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chorme_options=Options()
chrome_options.add_argument('--headless') #将浏览器设置为无头模式
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://www.baidu.com")
driver.close()
driver.quit() #退出浏览器