Python +硒+ phantomjs实现网页模拟登录和截图功能(windows环境)

  

本文全部操作均在windows环境下

  

  

Python是一种跨平台的计算机程序设计语言,它可以运行在Windows, Mac和各种Linux/Unix系统上。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(壳),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的,大型项目的开发
  

  

去Python的官网,www.python.org 下载安装
  

  

安装时勾选pip (python包管理工具),同时安装pip
  

  

python安装好之后,打开命令行工具cmd,输入“python - v”,然后敲回车,如果出现python版本号,则表示安装成功

  

  

硒是一个用于网络应用程序测试的工具.selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE (7、8、9、10、11), Mozilla Firefox、Safari、Chrome, Opera等.selenium是一套完整的网络应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(硒远程控制)和测试的并行处理(selenium Grid)

  

通过python包管理工具pip安装

  
  

pip安装硒      

  

phantomJS是一个基于webkit的javaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行javaScript代码。任何你可以基于在webkit浏览器做的事情,它都能做的到。它不仅是个隐性的浏览器,提供了诸如css选择器,支持温标准,DOM操作,json, HTML5等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等.phantomJS的用处可谓非常广泛诸如网络监测,网页截屏,无需浏览器的温测试,页面访问自动化等

  

phantomjs安装链接www.phantomjs.org

  

在桌面创建演示文件夹,创建demo.py文件,当做我们的脚本文件,创建img文件夹用来存放截取的图片demo.py:

        #=utf - 8编码   #导入网页驱动软件   从硒进口webdriver   #导入WebDriverWait等待模块   从selenium.webdriver.support。等进口WebDriverWait   导入的时间      #调用环境变量指定的PhantomJS浏览器创建浏览器对象   #括号内为phantomjs安装位置   司机=webdriver.PhantomJS (executable_path=" D: \ \ Python27 \ \ \ \ phantomjs-2.1.1-windows \ \ bin \ \ phantomjs.exe脚本”)   #访问的网址(以央视网为例)   driver.get (“http://www.cctv.com/?   #最大化浏览器   driver.maximize_window ()      #模拟点击登录按钮登录弹出登录框(后面有定位元素方法介绍)   driver.find_elements_by_xpath('//跨度[@class=" btn_icon "]”) [1] .click ()      #等待登录页面加载完成,WebDriverWait(后面有等待方法介绍)   WebDriverWait(司机10 0.5)。直到(λ潜水员:driver.find_element_by_xpath ('//[@class=癲l”]”),消息=" ")   time . sleep (2)   #截取登录框的页面保存到相应位置   driver.save_screenshot(“演示\ \ img \ \ login1.png”)   #定位登录页面用户名和密码元素并模拟填入用户名和密码   driver.find_element_by_name(“用户名”).send_keys (“xxxxxxxxxxx”)   driver.find_element_by_name (“passwd_view”) .send_keys (“xxxxxxxxxxx”)   #模拟点击登录按钮登录   driver.find_element_by_link_text(“登录”).click ()      WebDriverWait(司机10 0.5)。直到(λ潜水员:driver.find_elements_by_xpath('//跨度[@class=" btn_icon "]”),消息=" ")   time . sleep (2)   #截取登录后的页面保存到相应位置   driver.save_screenshot(“演示\ \ img \ \ login2.png”)      #模拟点击按钮跳转体育页面   driver.find_element_by_link_text(“体育”).click ()   WebDriverWait(司机10 0.5)。直到(λ潜水员:driver.find_element_by_link_text (CBA),消息=" ")   time . sleep (2)      #截取体育页面保存到相应位置   driver.save_screenshot(“演示\ \ img \ \ sport.png”)      #退出驱动关闭所有窗口   driver.quit ()      

  

打开命令行窗口cmd,切换到demo.py文件的路径下,输入

  
  python demo.py

     

脚本运行后会自动填写我们设定好的用户名密码并登录,截取设置好的页面并保存到img文件夹

  

登录框的页面截图:

  

癙ython

  

登录后的页面截图:

  

癙ython

Python +硒+ phantomjs实现网页模拟登录和截图功能(windows环境)