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
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启动火狐失败的主要内容,如果未能解决你的问题,请参考以下文章