Selenium启动Firefox示例(python版)

时间:2021-12-25 20:52:27

目前做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:\Downloads\chromedriver.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:\Users\xxxxxx\AppData\Local\Google\Chrome\Application;)

②2 在ie 下运行脚本,需要将IEDriverServer.exe 放在ie浏览器安装目录下

(同时设置用户环境变量path:C:\Program Files\Internet Explorer ),如果在调用浏览器遇到浏览器保护模式问题,可打开Ie浏览器–工具–Internet选项–安全–internet/本地intarnet/受信任的站点/受限制站点中的 启用保护模式全部勾选或者全部不选的勾去掉

③ 在firefox下运行脚本,直接调用(默认Python安装路径下,例如我的路径为:D:\Program Files (x86)\Python36\geckdriver.exe)