selenium+python启动火狐失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+python启动火狐失败相关的知识,希望对你有一定的参考价值。

Traceback (most recent call last):
File "C:\Users\cathy\Desktop\159155", line 3, in <module>
driver = webdriver.Firefox()
File "C:\Python27\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\firefox\webdriver.py", line 145, in __init__
keep_alive=True)
File "C:\Python27\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python27\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 179, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "C:\Python27\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium-3.0.1-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line
火狐36.0.4 python2.7 selenium3.0.1

这个提示是找不到启动app依赖的基础信息,有3种可能:
1、设置的app路径不对,检查后修正;
2、给定的权限不足,需要重新赋权;
3、扩展或插件的干扰,此时建议全部禁用。
参考技术A 物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料
python;CMD命令行;windows操作系统
方法/步骤
1、首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。

2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。
脚本第一行一定要写上 #!usr/bin/python
表示该脚本文件是可执行python脚本
如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。
3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度

4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。

启动火狐和谷歌在Selenium3.0上的启动

参考地址:http://www.cnblogs.com/fnng/p/5932224.html

               https://github.com/mozilla/geckodriver

【火狐浏览器】

火狐浏览器的驱动下载地址:https://github.com/mozilla/geckodriver/releases

要求火狐浏览器版本:Support is best in Firefox 52.0.3 and onwards,最好是52及之后的版本

要求selenium版本:Selenium3.0及+

新建一个文件夹,如d:\\seleniumdriver,将geckodriver.exe放置到该文件夹,再将d:\\seleniumdriver配置到系统变量的Path里面

package ant_junit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class TestFirefox {
    public static void main(String[] args) {
//如果火狐不是在默认目录下,需要这样设置一下火狐的路径,不然会报找不到火狐的错误 System.setProperty(
"webdriver.firefox.bin","D:\\\\Program Files (x86)\\\\Mozilla Firefox\\\\firefox.exe"); WebDriver dr = new FirefoxDriver(); dr.get("http://www.baidu.com"); dr.findElement(By.id("kw")).sendKeys("test"); dr.quit(); } }

 

【谷歌浏览器】

谷歌浏览器的驱动下载地址:https://code.google.com/p/chromedriver/downloads/list,但是国内有时访问不了,可以去网上其他地址搜索下一个

要求谷歌浏览器版本:一般最新的都支持

新建一个文件夹,如d:\\seleniumdriver,将chromedriver.exe放置到该文件夹,再将d:\\seleniumdriver配置到系统变量的Path里面

package ant_junit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class TestChromeDriver {
    public static void main(String[] args) {
//一般谷歌的安装都在默认目录下,当将chromedriver.exe配置到系统Path后,则可直接启动 WebDriver dr
= new ChromeDriver(); dr.get("http://www.baidu.com"); dr.findElement(By.id("kw")).sendKeys("test"); dr.quit(); } }

 

备注:

本人机器上测试成功的JDK版本:1.8

Selenium服务器版本:selenium-server-standalone-3.4.0.jar

以上是关于selenium+python启动火狐失败的主要内容,如果未能解决你的问题,请参考以下文章

selenium启动Firefox失败

geckodriver 支持多少火狐47版本

selenium webdriver 启动火狐谷歌IE浏览器及插件下载地址

启动火狐和谷歌在Selenium3.0上的启动

python+selenium 火狐浏览器运行不行

Selenium启动最新的火狐浏览器异常排查