目前做selenium自动化使用的主流语言分为java和python,前一篇为java版,本篇介绍python实现selenium启动Firefox。
1 #-*- coding:utf-8 -*- 2 3 from selenium import webdriver 4 from selenium.common.exceptions import NoSuchElementException, TimeoutException 5 from selenium.webdriver.remote.webelement import WebElement 6 from selenium.webdriver.support.ui import WebDriverWait # available since 7 from selenium.webdriver.common.keys import Keys 8 9 from time import sleep 10 import os, time 11 12 # driver = webdriver.Chrome("D:Downloadschromedriver.exe") 13 driver = webdriver.Firefox() 14 print u"加载驱动完成.." 15 driver.get("https://ww.baidu.com") # 加载页面 16 print u"加载页面完成.." 17 18 sleep(1) 19 20 try: 21 assert u"百度一下" in driver.title 22 print ('Assertion baidu title pass.') 23 24 elements = driver.find_elements_by_tag_name("input") 25 26 for e in elements: 27 if e.get_attribute("type")=="text": 28 print e.text 29 e.send_keys("123456") 30 # print e.tag_name 31 # print e.location 32 except Exception as e: 33 print ('Assertion baidu title fail.', format(e)) 34 35 driver.maximize_window() # 浏览器全屏显示 36 driver.close()
注意:可能会遇到一些报错
1. geckodriver.exe没有放到python安装目录下,这一类报错。
2. python demo.py 执行后,找不到文件,说明没有通过cd命令切换到demo.py所在的文件夹路径。
3.打开火狐浏览器了,但是没有获取到url地址
4.火狐浏览器打开且进入百度网页后关闭火狐浏览器时,提示浏览器遇到一个错误,停止运行了
针对 问题 3、4,我这边是通过降低Firefox浏览器的版本(如果遇到一下这类问题或相关浏览器调用问题,可升级或降低 selenium 和 firefox 的版本 进行兼容)
总结:
通过上面代码,和本文,基本了解了如何打开和关闭浏览器。如果想打开IE或者Chrome浏览器,也需要下载对应浏览器的driver.exe文件
① 在chrome 下运行脚本,需要将chromedriver.exe 放在chrome浏览器安装目录下
(同时设置用户环境变量path:C:UsersxxxxxxAppDataLocalGoogleChromeApplication;)
②2 在ie 下运行脚本,需要将IEDriverServer.exe 放在ie浏览器安装目录下
(同时设置用户环境变量path:C:Program FilesInternet Explorer ),如果在调用浏览器遇到浏览器保护模式问题,可打开Ie浏览器–工具–Internet选项–安全–internet/本地intarnet/受信任的站点/受限制站点中的 启用保护模式全部勾选或者全部不选的勾去掉
③ 在firefox下运行脚本,直接调用(默认Python安装路径下,例如我的路径为:D:Program Files (x86)Python36geckdriver.exe)