这一讲我们将介绍如何使用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.find_element_by_link_text("百科".decode('gbk')).click() #注意,这里的编码问题,否则会报错UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 0: invalid start byte,因为这里传输后,会自动将字符串编码转换为utf8编码,如果百科是gbk编码,那转换就失败,所以要进行解码。
driver.quit() 3,如何返回当前页面的title
from selenium import webdriver driver = webdriver.Chrome() 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的父类,实现了大多数的公用方法。
浙公网安备 33010602011771号