三、浏览器自动化测试工具selenium

一、selenium

selenium+phatomjs和selenium+chrome

selenium:是一种用于web程序测试的工具,selenium测试的代码可以直接运行在浏览器中,就像真正的用户操作一样。

在写python爬虫的时候,主要是用selenium的webdriver 来驱动浏览器进行相关的操作

安装:pip install selenium

selenium中元素查找:

find_element_by_id()

find_elements_by_name()

find_elements_by_xpath()

find_elements_by_tag_name()

find_elements_by_class_name()

find_elements_by_css_selector()

find_elements_by_link_text()

事件

click() 点击

send_keys()

switch_to_alert()

chromedriver:谷歌浏览器驱动

加载方法如下:

法一:driver = webdriver.Chrome(r'/Users/fanjianbo/Desktop/chromedriver')

法二:把chromedriver的目录配成环境变量路径,然后:driver = webdriver.Chrome()

【注意】chromedriver的版本要和chrome浏览器相对应,不然很多功能不能用

下载操作谷歌浏览器驱动的页面:http://chromedriver.storage.googleapis.com/index.html 或者 http://npm.taobao.org/mirrors/chromedriver/2.37/

谷歌驱动和谷歌浏览器版本之间的映射表:http://blog.csdn.net/huilan_same/article/details/51896672

phantomjs:无界面浏览器

加载方法如下:

    法一:driver = webdriver.PhatomJS("C:\Users\ZBLi\Desktop\1706\day04\ziliao\phantomjs-2.1.1-windows\bin\phantomjs.exe")

    法二:把phantomjs拷贝到c盘下,并把bin目录配置成环境变量,然后driver = webdriver.PhatomJS()

【注意】phantomjs目前已经不再更新

下载地址:http://phantomjs.org/download.html

二、使用

  • 使用chrome浏览器
# 导入selenium工具
from selenium import webdriver

# 给浏览器加入无头浏览器,使得调取浏览器的时候不需要打开,只需要调用其内核即可
opt = webdriver.ChromeOptions()
opt.add_argument("--headless")
# 根据驱动所在的路径创建出一个浏览器对象
driver = webdriver.Chrome()

#driver对象可以通过操作浏览器
driver.get("http://www.baidu.com/")

# 获取页面上的某个标签元素
btn = driver.find_element_by_link_text("新闻")
# print(btn)

# 点击方法 .click()
btn.click()

# 找到输入框,写入内容方法  .send_keys()

input = driver.find_element_by_id("kw")
input.send_keys("赣南王昱珩")
driver.find_element_by_id("su").click()

# 对于爬虫来说,更关注做了某些操作之后得到的网页源码是什么
html = driver.page_source    # 获取页面源码
with open("baidu.html",'w',encoding='utf-8') as fp:
     fp.write(html)

driver.quit()
  • 使用PhantomJS无头操作
from selenium import webdriver

driver =webdriver.PhantomJS()

driver.get("http://www.baidu.com/")
# print(driver.page_source)

# 保存截屏方法 .save_screenshot()
driver.save_screenshot("./baidu.jpg")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容