selenium + phantomjs/Chrome
Posted hongliangzhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium + phantomjs/Chrome相关的知识,希望对你有一定的参考价值。
1,selenium
1,定义:Web自动化测试工具,应用于web自动化测试
2,特点:
1,可以运行在浏览器上,根据指定的命令操作浏览器,让浏览器自动加载页面
2,只是工具,不支持浏览器功能,需要与第三方浏览器结合使用
2,phantomjs
1,定义:无界面浏览器(无头浏览器)
2,特点:
1,把网站加载到内存(速度快)进行页面加载
2,运行高效
3,安装
1,Windows
1,将下载的可执行文件放到Python安装目录的Scripts目录下
如果路径自定义程序中要指定绝对路径
2,cmd >>> where Python
2,Ubuntu
1,将下载的 phantomjs 放到一个路径下
2,添加环境变量:
vi.bashrc添加
export PHANTOM_JS=/home/.../phantomjs.23.8-67
export PATH=$PHANTOM_JS/bin:$PATH
终端:source.bashrc
终端: phantomjs
伪代码:
from selenium import webdriver import time #创建浏览器对象,发送请求 driver = webdriver.PhantomJS() driver.get("url") time.sleep(0.5) #获取截图 driver.save_screenshot("验证码.png") #使用 用户名,密码 验证登录网址 uname = driver.find_element_by_name("form_email") uname.send_keys(‘用户名‘) upwd = driver.find_element_by_name(‘form_pasword‘) upwd.send_keys(‘用户密码‘) #使用验证码登录 YanZhengMa = driver.find_element_by_name(‘captcha_field‘) k = input(‘请输入验证码:‘) YanZhengMa.send_keys(k) #截取完成界面 driver.save_screenshot("完成.png") #点击登录按钮 login = driver.find_element_by_name(‘bn-submit‘) login.click() time.sleep(1) #截取登录成功页面 driver.save_screenshot(‘登录成功.png‘) #关闭浏览器 driver.close()
- 常规界面操作方法:
导入selenium模块:
from selenium import webdriver
设置浏览器驱动器:
driver = webdriver.PhantomJS() [ driver = webdriver.ChromeOptions() ]
发送请求:
driver.get(‘url‘)
获取响应源码:
driver.page_source
driver.page_source.find("字符串") 查找字符串
保存页面截图:
driver.save_screenshot("name.png")
退出浏览器:
driver.quit() [ driver.close() ]
单元素查找(如果匹配到多个节点,则只返回第一个节点对象):
driver.find_element_by_id(" ")[.txt]
driver.find_element_by_class_name(" ")
driver.find_element_by_xpath("xpath表达式")
多元素查找:
driver.find_elements_by_***
#如果查询到一个结果,则返回节点对象,不是列表
#如果查询到多个结果,则返回节点对象的列表
对象名.send_keys("要发送的内容")
对象名.click()
- 操作键盘:
导入模块:from selenium.webdriver.common.keys import Keys
Ctrl+A : 对象名.send_keys(Keys.CONTROL,‘a‘)
Enter : 对象名.send_keys(Keys.ENTER)
清空搜索框 : 对象名.clear()
以上是关于selenium + phantomjs/Chrome的主要内容,如果未能解决你的问题,请参考以下文章