(一)、Selenium1和Selenium2介绍
Selenium1.0是一个基于浏览器的开源自动化测试工具,它中可以使用多种语言编程,在运行Selenium1.0程序之前,需要先启动selenium server服务,及selenium remote control,简称为RC。由于其实由JavaScript实现的,所以只要支持JavaScript的浏览器都可以很好的支持它。而Selenium2.0是Selenium1.0和WebDriver的结合,WebDriver可以直接操作HTML Unit驱动,速度快。Selenium2.0最显著的特点就是不需要再启动server服务了。
(二)、Selenium2以及相关驱动下载
各版本下载地址:点击下载Selenium2
下载界面如图所示:

(三)、启动Selenium2 Server
下载selenium-server-2.50.0.zip并解压出selenium-server-2.50.0文件夹,下载selenium-server-standalone-2.50.0.jar,将其放入selenium-server.zip解压的目录下面。在Windows下打开命令行,来到selenium-server-2.50.0文件夹下,输入以下命令:(例如java -jar selenium-server-standalone-2.50.0.jar 位置是:E:\ChromeGoogle\爬虫\selenium-server-2.50.0),命令如下:

C:\Users\Administrator>E:E:\>cd E:\ChromeGoogle\爬虫\selenium-server-2.50.0E:\ChromeGoogle\爬虫\selenium-server-2.50.0> java -jar selenium-server-standalone-2.50.0.jar  

说多了都是废话,那么,激动人心的demo来啦!

import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import util.OperatorUtil;
public class IEExample {  public static void main(String[] args) {  //设置IE浏览器驱动的位置  System.setProperty("webdriver.ie.driver", "D:\\iedriver\\IEDriverServer.exe");  //新建WebDriver 对象WebDriver driver = new InternetExplorerDriver();  //打开链接  OperatorUtil.open(driver, "http://xxx.xxx.xxxx.xx:xxxx/xxx/global.Login.doLogin.hf"); //获取当前页面的句柄String currentHandle = driver.getWindowHandle();System.out.println("currentHandle  : " + currentHandle);  //为组件赋值//获取页面组件id为userAccount的组件WebElement userName = driver.findElement(By.id("userAccount"));  //为组件赋值userName.sendKeys("admin"); //此处填写你要登录界面的用户名//获取页面组件id为 userPassword的组件WebElement passWord = driver.findElement(By.id("userPassword"));  //为组件赋值passWord.sendKeys("123456"); //此处填写你要登录界面的密码//获取登录按钮WebElement subtn = driver.findElement(By.id("login_btn"));//点击登录按钮subtn.click(); //停留时间OperatorUtil.waitTime(1000);Set<String> handles = driver.getWindowHandles();         Iterator<String> iterator = handles.iterator();//OperatorUtil.switchToNewWindow(driver);// 进入系统首页,并获取title验证OperatorUtil.waitTime(1000);while (iterator.hasNext()) {String h = (String) iterator.next();if (h != currentHandle) {//将窗口转换至点击登陆后的界面driver.switchTo().window(h);//输出跳转后页面的详细信息,打印到控制台,如果打印的HTML代码与正常登录后的界面代码相吻合,证明模拟登录成功System.out.println(driver.getPageSource());  }}try {  Thread.sleep(5000);  } catch (InterruptedException e) {  e.printStackTrace();  }  //关闭驱动driver.close();  }
} 

注意:亲自尝试过的小伙伴们肯定注意到了OperatorUtil类并没有对应的jar包,因为这是我自己写的一个工具类,里面办含了open(driver),waitTime(int)等方法,具体代码如下:

import java.util.Iterator;
import java.util.Set;import org.openqa.selenium.WebDriver;public class OperatorUtil {//1 打开链接public static void open(WebDriver driver,String url){driver.get(url);}//2.切换到最新的窗口public static void switchToNewWindow(WebDriver driver){//得到当前句柄String currentWindow = driver.getWindowHandle();//得到所有窗口的句柄Set<String> handles = driver.getWindowHandles();//排除当前窗口的句柄,则剩下是新窗口Iterator<String> it = handles.iterator();while(it.hasNext()){if(currentWindow == it.next())  continue;driver.switchTo().window(it.next());      }//return driver; }public static  void waitTime(int time) { try {Thread.sleep(time);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

另外需要注意的是:运行程序一开始可能报错,报错信息如下:

Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Protected Modesettings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING:The server did not provide any stacktrace information)

解决方法请参照:解决报错的方法
其他浏览器原理类似,如需帮助请留言。

使用Selenium模拟浏览器登录,并获取页面信息相关推荐

  1. Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博

    Python网络爬虫之如何通过selenium模拟浏览器登录微博 微博登录接口很混乱,需要我们通过selenium来模拟浏览器登录. 首先我们需要安装selenium,通过pip安装: ``` pip ...

  2. 用selenium模拟浏览器登录淘宝识别滑动验证码

    用selenium模拟浏览器登录淘宝,使用账号密码的方式登录淘宝,但是在登录的时候遇到需要滑动验证,使用selenium模拟点击滑块,滑动验证码完成登录. 本文的代码现测可用.做个记录,方便以后查看. ...

  3. python 模拟浏览器selenium_python爬虫10:使用selenium模拟浏览器登录账号

    需求背景: 很多网页通过复杂的JS函数组合,来实现对信息的加密.异步信息处理等,导致很难分析出网页接口. 那么最快速度的实现爬虫功能,是模拟浏览器的行为,加载运行JS,才能破解页面. 模拟浏览器行为, ...

  4. python 模拟浏览器selenium_python爬虫:使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  5. 用selenium模拟浏览器爬取淘宝订单信息

    用selenium模拟浏览器登录淘宝爬取自己购买商品的订单信息,代码不是十分完善,但是亲测可用,后期还可以进一步优化. 链接:https://pan.baidu.com/s/1aGwWCFaWPfOU ...

  6. 【python】实验2项目2:使用爬虫Selenium模拟浏览器获取爬取QQ音乐中你喜欢的某位歌手(陈奕迅)

    请使用爬虫Selenium模拟浏览器获取爬取QQ音乐中你喜欢的某位歌手(可以是任意歌手)最受欢迎的前5首歌曲的歌词.流派.歌曲发行时间.评论条数.评论时间.评论点赞次数.评论内容具体(每一首歌的评论& ...

  7. python 模拟浏览器selenium 微信_Spider-Python爬虫之使用Selenium模拟浏览器行为

    分析 他的代码比较简单,主要有以下的步骤:使用BeautifulSoup库,打开百度贴吧的首页地址,再解析得到id为new_list标签底下的img标签,最后将img标签的图片保存下来. header ...

  8. python模拟浏览器下载文件在哪里_python下selenium模拟浏览器基础操作

    1.安装及下载 selenium安装: pip install selenium  即可自动安装selenium geckodriver下载:https://github.com/mozilla/ge ...

  9. 3.使用Selenium模拟浏览器抓取淘宝商品美食信息

    # 使用selenium+phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏览器翻页,并 ...

最新文章

  1. MyBatis 几个常用的 jdbcType数据
  2. Angular jasmine fixture.detectChanges如何触发directive的set方法
  3. 计算机网络走向系统化 科学化,第六章计算机网络与INTERNET 应用习题
  4. php网站加广告位,HotNews Pro主题文章内容上面添加广告位
  5. VMware vCloud与Zend Server实现PHP应用程序自动化交付
  6. 关于Python,虚拟环境和Visual Studio Code集成的说明
  7. android中OpenMax的实现【2】AwesomePlayer中openmax的入口
  8. 数论及Python实践
  9. oracle ebs采购申请接口表,Oracle EBS BOM接口表操作.doc
  10. 用Adobe Illustrator将位图转为矢量图并上色
  11. R语言 图片识别文字 PNG JPG图片转文字 OCR tesseract包
  12. Word文档中只删除英文保留中文或删除中文保留英文
  13. Java对接云mas发送短信(https方式)
  14. javax.persistence.OneToMany.orphanRemoval()Z
  15. ADS1258使用START注意的事项
  16. Power BI——EARLIER 函数(对行操作)
  17. Linux Alsa声卡驱动(1):简介
  18. OpenMV 检测色块
  19. 微信开放标签使用注意说明
  20. 最新JAVA编程题全集(50题及答案)

热门文章

  1. 将jar包安装到本地仓库
  2. Maven项目构建(一):什么是Maven?
  3. 渗透杂记-2013-07-12
  4. Kotlin集合—集合类型共性和操作
  5. 有关小米6手机更新REC的一些问题记录
  6. Redis Client On Error: Error: write ECONNABORTED Config right
  7. scrollTo猎豹浏览器报错无法使用和解决办法
  8. [转载] 乔布斯时代的三条设计原则,苹果现在已经忘了
  9. TX2制作镜像并烧写镜像
  10. 时间日期选择武器点击清除按钮时报错