这一讲我们将介绍如何使用selenium提供给我们的接口进行浏览器的简单操作。

  1,如何打开一个测试浏览器(该操作为”万里长征的第一步”,必须给以重视。)

  from selenium import webdriver  #引入模块

  driver = webdriver.Chrome()   #打开Chrome测试浏览器窗口(注意,不同于平常打开Chrome窗口),driver表示一个测试窗口对象如果driver2=webdriver.Chrome()则是打开一个新的测试窗口对象。

  driver.get('http://www.baidu.com')   #打开指定页面

  driver.quit()   #退出测试浏览器窗口

  2,如何返回当前页面的url 

  # -*- coding: utf-8 -*-
  from selenium import webdriver
  driver = webdriver.Chrome()
  driver.get('http://www.baidu.com')
  driver.find_element_by_link_text("百科".decode('gbk')).click()   #注意,这里的编码问题,否则会报错UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 0: invalid start byte,因为这里传输后,会自动将字符串编码转换为utf8编码,如果百科是gbk编码,那转换就失败,所以要进行解码。
  if driver.current_url == 'http://baike.baidu.com/': print 'correct'
  driver.quit()
  3,如何返回当前页面的title 
  from selenium import webdriver
  driver = webdriver.Chrome()
  driver.get('http://www.qq.com')
  print(driver.title)
  driver.quit()
  4,其他方法或属性

  在这里仅仅讨论一些简单的属性和方法,更加复杂的方法会在后面慢慢讨论。 

  python

  • window_handles : 返回当前所有打开浏览器的窗口句柄.注意,这是属性,不是方法;
  • current_window_handle : 返回当前的浏览器的窗口句柄.注意,这是属性,不是方法;
  • page_source : 返回当前页面的源码.注意,这是属性,不是方法;
  • name : 返回当前浏览器的名称.注意,这是属性,不是方法;

 

@总结:

1,注意:如果使用chrome进行测试,那么必须下载安装chrome driver,如果是ie的话,目前必须下载ie driver,另外还需要注意ie的保护模式设置。

2,如何关闭浏览器,测试结束后往往需要关闭浏览器可以使用driver.quit()或者是driver.close()方法

这两个方法的异同点是:

  • quit可以关闭driver打开的所有浏览器窗口,而close只是关闭当前窗口
  • quit可以关闭与driver的连接,而close依然保留连接。如果你不能理解这个的话,你可以这样简单的认为quit的话会关闭掉 driver,而close的不会。因此你使用close关闭了浏览器后,在某些情况下你可以看到仍然存在chromedriver或者 iedriverserver进程。

3,python源码中,操作浏览器的方法主要封装在selenium\webdriver\remote \webdriver.py文件中。 该文件定义了Remote WebDriver类。该类是其他具体的driver,如Chrome WebDriver的父类,实现了大多数的公用方法。

posted on 2014-04-08 14:08  学到老死  阅读(878)  评论(0)    收藏  举报