当直接调用火狐出现不兼容错误时,如何解决?

详看Message中提示:Expected browser binary location,but unable to find binary in default location,大概意思就是说寻找不到binary。

总的结果来说,selenium3.0不支持firefox默认的driver了,但是在selenium2.x版本是可以支持的,这就是差异,

到http://www.assertselenium.com/selenium-3/firefoxdriver-in-selenium-3/地址我们可以获取到我们想要的信息

依据如上的信息,可以看到,selenium3.0在firefox浏览器中提供了GeckDriver,需要使用它,也就是说之前的默认自带的driver在selenium30.已经不能使用了,需要使用GeckDriver,GeckDriver代替了之前的自带默认的driver,这样的好处是每个浏览器都可以自己开发driver,来适配selenium3.0来进行自动化的测试,接着继续往下看,可以看到,提供了GeckDriver的下载地址,见原文

---------------------------------------------------------------------------------------------------------------------

以上为分析废话,具体步骤如下:

①下载GeckDriver    https://github.com/mozilla/geckodriver/releases

记住根据自己电脑的环境来下载哦

② 把GeckDriver在该地址下载后,解压得到geckodriver.exe文件,把它加入到环境变量 (如我放在之前设置好的环境变量目录 c:\python35)

③ 接着想使用GeckoDriver ,firefox浏览器必须是48或者更高版本。于是升级firefox,保障浏览器版本在48或者更高

④ 升级后,把binary加入进去,就可以正常的运行了,见执行的源码:

#  -*- coding:utf-8 -*-

from selenium import webdriver     #导入webdriver包
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary #导入friefox webdriver 包
import time #调入time函数 binary = FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe") #加入Firefox的路径
driver =webdriver.Firefox(firefox_binary=binary) #### 定义driver 要操控火狐浏览器 webdriver.firefox driver.get("http://www.baidu.com")
time.sleep(0.3) #休眠0.3秒
driver.find_element_by_id("kw").send_keys("selenium")
####一个控件有若干属性id 、name、(也可以用其它方式定位),百度输入框的id 叫kw 我要在输入框里输入 selenium 。
driver.find_element_by_id("su").click()
####搜索的按钮的id 叫su ,我需要点一下按钮( click() )。
time.sleep(3) # 休眠3秒
print(driver.title) # 把页面title 打印出来 当没看到整个脚本执行过程时,看到打印出这句话,就说明页面被正确打开了
driver.quit() #退出并关闭窗口的每一个相关的驱动程序 类似的表弟为 driver.close()
# driver.close() #关闭当前窗口

------------------分析一下------------------------------

1.增加多了一句     from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

2.增加Firefox的路径

3.原来的直接调用driver=webdriver.firefox() 变成了  driver =webdriver.Firefox(firefox_binary=binary)

好了,解决掉以上问题 配置环境调用浏览器问题应该就完全解决了吧。

selenium3.0不兼容火狐的解决方案的更多相关文章

  1. 1 selenium3.0.1无法打开火狐浏览器

    [问题描述] 1.配置selenium3.0和java后,尝试打开火狐浏览器,提示缺少geckodriver驱动. [解决方案] 1.在http://www.seleniumhq.org/downlo ...

  2. 【基础】火狐和谷歌在Selenium3.0上的启动(二)

    参考地址:http://www.cnblogs.com/fnng/p/5932224.html https://github.com/mozilla/geckodriver [火狐浏览器] 火狐浏览器 ...

  3. css把超出的部分显示为省略号的方法兼容火狐

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  4. Selenium2+python自动化2-pip降级selenium3.0

    selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATH selenium默默的升级到了3.0,然而网上的教程都是 ...

  5. 向上下左右不间断无缝滚动图片的效果(兼容火狐和IE)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. js下载base64格式的图片(兼容火狐)

    //下载图片 download() { let imgData = 'data:image/png;base64,iVBORw0KGgoAAAANSUh........'; this.download ...

  7. 1.2 pip降级selenium3.0

    1.2 pip降级selenium3.0 selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATHselenium ...

  8. js兼容火狐显示上传图片预览效果

    js兼容火狐显示上传图片预览效果[谷歌也适用] <!doctype html> <html> <head> <meta content="text/ ...

  9. Selenium2学习(一)-pip降级selenium3.0

    selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATH selenium默默的升级到了3.0,然而网上的教程都是 ...

随机推荐

  1. oracle查询数据库连接数相关

    select username,count(username) from v$session where username is not null group by username;--查询各个用户 ...

  2. 003_Python3 基本数据类型

    1.Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存 ...

  3. antd 表格隔行变色

    rowClassName={(record, index) => { let className = 'light-row'; if (index % 2 === 1) className = ...

  4. xhEditor编辑器从word粘贴公式

    我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...

  5. nowcoder 181045 / 克洛涅的多项式 构造+思维

    题意:有多项式 $F(x),G(x)$,最高次项分别为 $n,m$.$F(x)$ 最高次项系数为 $1$. $m<n$ 给定 $n$ 个不同的点值,满足 $F(x[i])=G(x[i])$ 给定 ...

  6. 模板 - 数据结构 - Treap

    还有人把Treap叫做树堆的,但是常用名还是叫做Treap的比较多. 不进行任何封装的,带求和操作的,一个节点存放多个元素的最普通的Treap. #include<bits/stdc++.h&g ...

  7. 浅谈Min_25筛(一看就懂的那种)

    作用 前提:一个积性函数\(F(i)\),要求\(F(P^k),P\in prime\)可以快速计算 实现\(O(\frac{n^{\frac{3}{4}}}{logn})\):\(\sum\limi ...

  8. zabbix (三) 所需磁盘容量计算

    一.zabbix 磁盘容量大小 zabbix的数据库大小取决于NVPS(new values per second)大小,NVPS从总体上反应了处理速度,与监控项的数目,监控项的类型,取值间隔,His ...

  9. centos 7 启动docker失败。

    刚安装docker-io,在启动的时候报如下错误: Error starting daemon: SELinux is not supported with the overlay2 graph dr ...

  10. EXCEL技巧-多级目录设置

    现有如下图所示的数据,要求:以方法.厚度.品种进行分类汇总,并对数量.面积.金额求和. 在进行分类汇总前需要先对数据进行排序,操作如下图所示. 在排序对话框中,点击“添加条件” 两次,这样可以对三个字 ...