No browser is open问题-------gc浏览器驱动加入python安装包

我们分别从常见的几个浏览器来看看: 
1,Firefox 
先来看一个案例,我这里主要是用百度做了个搜索。

然后我运行了一下,新手状语从句:们一样的情况出现了  此时,很多人第一反应就是把下面这个截图发到群里:  又或者是直接问,为什么我的浏览器打不开,报错没有浏览器是开放的?拜托,请不要只把你以为是错误信息的内容发出来,只发这一点内容的谁也不知道是什么情况。难道你就没有看到下面一句么:  更有甚者把前面图中红色的'Sevice'对象啥啥啥的发给我。对于这些新手来说,我觉得可以理解,毕竟对rf不熟悉,遇到问题了就慌乱了。所以我一般会和他说一句:你敢把截图再截大一点么?当然有的人说我下面那个框看不到内容是空白的,请去本公众号里回复目录,查看“搭车日志不见了”那篇。
这里写图片描述

 

这里最核心的错误是'geckodriver'可执行文件需要在PATH中。其实翻译过来很简单,就是这个叫geckodriver的可执行程序需要放在一个叫PATH的地方。

PATH这里大写,实际上指的是我们每个人操作系统里的环境变量PATH,它有什么用呢?简单举例比如说你的Python安装在C:\ Python27 \目录,默认情况下,你想在其它目录执行Python.exe这个命令的时候,系统是找不到这个程序的,你可以写C:\ Python27 \ Python.exe,这样就能找到了。但是写这么长很麻烦,所以就有这个PATH的环境变量来帮助你,PATH的意思是路径,实际上就是如果你把C:\ Python27 \添加到PATH的配置中,那么就等于你访问Python.exe文件有了一个路径了,你不需要再输入前面的路径,系统会自动去PATH配置的路径里去找的。

geckodriver是什么鬼呢?实际上以前在Selenium2.0的时候,默认是带了Firefox的浏览器的驱动的,所以当时不需要装什么,就可以直接打开Firefox进行自动化测试。只是当时需要输入Firefox的配置文件路径ff_profile_dir,在2.0时代很多人打不开Firefox多半是这个ff_profile_dir的问题。

而现在Selenium3.0已经出来了,很多人用pip新安装Selenium2Library的时候,默认就下载了最新的Selenium3.0了,而在3.0里不再有Firefox的驱动了,Mozilla也把Firefox的驱动独立发布出来了,而这个司就是geckodriver了。当我们在案例中用打开浏览器打开浏览器的时候,默认如果我们不告诉它用什么浏览器,它是去打开Firefox的。而要打开Firefox并能后续接收到我们让它执行什么操作的指令的,都是靠这个geckodriver。

所以这个问题解决的方案就是去下载geckodriver,然后放到一个PATH环境变量的路径里,通常这个路径我建议是你的Python的安装目录,因为本身我们要用Robotframework的时候,也是需要把Python的安装目录和Python \ Scripts目录都加入到环境变量里才能正常使用的。

geckodriver的下载地址:https: 
//github.com/mozilla/geckodriver/releases

这里我也做了一个gif动画,但是太大了,我只能放到新浪图床了。里面还有一个错误,什么Firefox二进制找不到的,解决方案也在gif里了(约7.3M) :http: 
//t.cn/RfOxEVi

2,Chrome 
Chrome的案例也是和Firefox类似的。

当然错误也是类似的:

并且它还很友善的告诉你去哪个网站下载,不过它给的网站要科学上网才行,但是下载chromedriver的网站却不需要科学上网,直接就能访问。两个地址我都给了,如果你能进入官网的话还能看到一些版本说明之类的。

https://sites.google.com/a/chromium.org/chromedriver/home

http://chromedriver.storage.googleapis.com/index.html

不过除了在PATH的错误,大家在用chromedriver的时候还可能会遇到一个错误:

WebDriverException:消息:未知错误:Chrome版本必须> = 53.0.2785.0(驱动程序信息:chromedriver = 2.25.426923(0390b88869384d6eb0d5d09729679f934aab9eed),platform = Windows NT 6.1.7601 SP1 x86_64) 
这里的关键信息是Chrome版本必须> = 53.0.2785.0,并且给出了驱动程序信息:chromedriver = 2.25.426923,后面还有一些系统信息。这里的意思是说因为你用的chromedriver是2.25的,那么你的浏览器的版本一定要在53.0以上才行。而我出现这个错误的版本是51.0的。解决方案呢,请看gif动画(约3.2M):http: 
//t.cn/RfOxiNO

3,IE 
IE的案例也和前两个差不多的,只不过之前我为了验证一个关键字的用法写了个例子在里面,可以先忽忽7,8,9这几行。

IE的报错信息如下:

同样的,人家也是很友好的给出了下载地址,可惜你们就是不看,这个地址也是直接就可以访问的.http: //selenium-release.storage.googleapis.com/index.html 

当然IEDriver的版本最好和Selenium的版本是一样的,不过我后面动画里用的是2.53.1的IEDriver,也是一样可以在Selenium3.0下使用的,当然最好还是下3.0的Driver。同样的我也做了个个gif动画(约1.9M):http: 
//t.cn/RfOqxXV

4,总结

前面那些错误信息里的英语都是最基础的英语了,我实在想不出为什么有很多人在qq群里等翻译,比如说IEDriver还有可能遇到的错误是4个区域的保护模式必须相同(启用或禁用),很多人不知道保护模式是啥,最直接的翻译(不知道的以后去问度娘),保护是保护,模式是模式,所以连起来就是保护模式,那么在你的IE选项里慢慢找一下哪里是保护模式,如果你用的是英文版浏览器应该更好找了。找到之后,再看看啥是zone,同是啥意思,启用是啥意思,然后你就明白那该怎么解几个单词不明白什么意思的请问度娘。又比如说可能还有个几个浏览器

总结一下,其实只要大家细心一些,自己都可以发现错误在哪里,然后再勤快一点(问度娘)或以前勤快一点(学英语),问题可能早就解决了,或者知道该怎么求助别人了。说到英语,很多人以为我的英语很好,其实根本不是,我的英语四级是在大四那年才考过的63.5分。我学习Robotframework的时候都是看官方的原版文档,很多人怕读英文文档,这有什么怕的呢,你自己偷偷看又没人知道,而且这些官方的文档一般都不会使用太偏僻的词汇,很多都是基础的英文单词,再说了,遇到不会的单词我自己也是去找度娘或者谷歌翻译呢。

好吧,说了这么多,实际上是希望大家能掌握一点主动找问题关键点的方法。如果你真的不会找问题关键点也没关系,那就不要自以为是的只截一点点的图来提问,很多人都是只发一点错误信息,然后到处求助。我只想说不要浪费你自己的时间和大家的时间,提问题也要讲解方式方法,因为大家看到了,前面很多种可能都会导致浏览器是打开的报告,你只是这个信息,没人知道原因的。 
既然你不会找问题,那么就请提供完整的信息出来,完整的信息是什么,你的案例,你的RIDE错误截图(要完整的),如果没有日志的也可以在RUN的界面点击log按钮,在报告里也会有错误信息的,如果你的log是灰色的,在你的运行信息里也有log.html的路径,自己打开看。

总之,方法总比问题多,不要在一棵树上吊死。希望看完了这篇文章后你们都能知道没有浏览器开了都是什么鬼了,也都知道这些司是干啥的,弄​​明白这些驱动程序,以后你们就是老司机了〜

你可能感兴趣的:(代码工具)