吴裕雄--天生自然python学习笔记:python用 Selenium 组件实现浏览器操作自动化

一般情况下,我们都是用手工操作的方式来对浏览器进行各种操作 。 实际上,
只要我们安装一个自动化操作组件, Python 就可以让我们的很多操作实现自动化 。
Selenium 组件
在开发网页时,用户接口的测试向来是一件相当不容易的事情,如果用手动方
式进行测试的各种操作,不仅效率低而且容易出错 。 Selenium 的出现就是为了解决
这个问题,它可以通过指令实现对网页操作的自动化,从而完成自动测试的功能。
除此之外, Selenium 还可以将许多其他的网页操作实现自动化,井能在指定时间自
动运行,功能相当强大。
安装 Selenium
使用 Se l enium 前,我们首先必须安装 Selenium 组件,安装命令如下:
pip install selenium
下载 Chrome WebDriver 
要自动操作 Google Chrome 浏览器,还须安装相关的驱动程序,请根据自己的
操系统( Linux, Mac, Windows )下载 Chrome WebDriver ,网址如下:
http://chromedriver.storage.googleapis.com/index.html?path=2.27/ 

下载文件chromedriver_win32.zip即可。即使电脑是64位也没有关系,因为你安装的谷歌是32位的 
解压之后,将chromedriver.exe放到谷歌浏览器的安装目录中:在开始菜单中,找到谷歌浏览器,然后右键“打开文件位置”,我的是C:Program Files (x86)GoogleChromeApplication 
将谷歌浏览器的安装目录,添加到系统环境变量path中。 

 

 

 

 

创建 Google Chrome 浏览器对象后,就可以通过 getO 方法连接到指定网址,最
后用 quit()方法关闭浏览器。 以百度网的连接和退出为例,代码如下 :
from selenium import webdriver

browser= webdriver.Chrome()
browser.get('http://www.baidu.com')
browser.quit()
我们还可以把要浏览的网站建立一个列表,这样就能依次访问这些网站。如先
打开 Chrome 浏览器,把窗 口 最大化,然后每 3 秒打开一个列表 中的网站 , 最后关 闭
浏览器 。
from time import sleep
from selenium import webdriver

urls = ['http://www.baidu.com','http://news.sina.com.cn/','http://www.wsbookshow.com']

browser = webdriver.Chrome()
browser.maximize_window
for url in urls:
    browser.get(url) 
    sleep(3)
browser.quit()
查找网页元素
如果我们想要与网页进行互动,比如,我们要单击下单锻钮、超链接或要输入
文字 ,那么我们必须先获得网页元素,这样才能对这些特定元素进行操作 。
Selenium Webdriver API 提供了 多种获取网页元素的方法。 如下表所示 :

在以上各个方法名称中的 element 后面加上 s ,会返回特定查找的元素列表。
下面我们通过用 Chrom 浏览器访问http://www.wsbookshow.com/bookshow/jc/bkcxsj/12442.html这个 HTh伍页面中的元素,来对以上方法进行示例说明。
from selenium import webdriver #导入webdriver

url='http://www.wsbookshow.com/bookshow/jc/bk/cxsj/13054.html'  #以此链接为例
browser=webdriver.Chrome()  #生成Chrome浏览器对象(结果是打开Chrome浏览器)
browser.get(url)    #在浏览器中打开url

login_form=browser.find_element_by_id("menu_1")   ##查找id="menu_1"的元素
print(login_form.text)   #显示元素内容
#browser.quit()   #退出浏览器,退出驱动程序

username=browser.find_element_by_name("username")   #查找name="username"的元素
password=browser.find_element_by_name("pwd")  #查找name="pwd"的元素
login_form=browser.find_element_by_xpath("//input[@name='arcID']")
login_form=browser.find_element_by_xpath("//div[@id='feedback_userbox']")
continue_link=browser.find_element_by_link_text('科技类图书')
continue_link=browser.find_element_by_link_text('英语')
heading1=browser.find_element_by_tag_name('h1')
content=browser.find_elements_by_class_name('topbanner')
content=browser.find_elements_by_css_selector('.topsearch')
#print(content.get_property)
browser.quit()   #退出浏览器,退出驱动程序
原文地址:https://www.cnblogs.com/tszr/p/12026133.html