在Ubuntu上安装指定版本的Firefox

如果你使用Selenium(Webdriver),并且用Firefox作为一个主要的测试浏览器的话,最近一定比较郁闷。Selenium最近也是一路快跑,升级到了2.12了。他们的博客也就是发到2.9而已。而伟大的FF居然升级到了8.0,伤不起啊!每次新版本Firefox出来以后,Webdriver基本上肯定是支持不了的,然后发一个小版本来fix一下,我说你们这是何苦呢?最郁闷的是,我用PythonBindings,在Ubuntu 11下是用不了的,只能在Ubuntu 10上面搞。昨天Firefox自动升级到8.0,我也就跟着完蛋了。吐槽完毕,说说解决办法。

1. 下载指定版本的Firefox

先在这里:http://releases.mozilla.org/pub/mozilla.org/firefox/releases/下载你想要的Firefox,这里我下的7.0。点进去以后还得选平台,大家都懂得。

2. 解压缩包

tar jxpvf firefox-7.0.tar.bz2

3. 修改owner,假如说上面解压缩出来的文件是放在/home/qa/firefox下

sudo chown -R root:root /home/qa/firefox

4. 把原来的symbol link删掉

sudo unlink /usr/bin/firefox

5. 建一个新的link

sudo ln -s /home/qa/firefox/firefox /usr/bin/firefox

搞定!

最后一步,关掉Firefox的自动更新

1. 在Firefox里面输入

about:config

2. 找到这个变量,设置为false

app.update.auto

终于搞定。

鉴于现在Selenium和Firefox频繁升级,如果大家的自动化测试跑得好好的,就不要主动或者被动地升级了。麻木追新是要付出代价的。

解决Jenkins Email Extension Plugin发送邮件失败

昨天用来测试的虚拟机不知道怎么回事,Firefox自动升级到8.0。结果就是我的WebDriver PythonBindings 在FF8下面是用不了的。现象就是,实例化一个Firefox Driver,然后 driver.get(‘http://www.google.com’),立刻返回,浏览器没有做任何响应。这个问题我自己不知道怎么解决,外面的世界貌似也没人遇到这个问题,究竟是没人碰到这个问题呢,还是很少用人PythonBinding?

恢复了VM镜像,然后让Jenkins重新跑起来,但是之后就遇到一个问题,发邮件一直失败。错误是

ERROR: Could not send email as a part of the post-build publishers.
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.2 We weren’t able to find the recipient domain. Please check for any
553-5.1.2 spelling errors, and make sure you didn’t enter any spaces, periods,
553 5.1.2 or other punctuation after the recipient’s email address. i6sm163233obl.2

搜了一下,应该是Jenkins标准的邮件插件是用空格来做多个邮件地址的分隔符,而Email Extension Plugin使用逗号分隔多个邮件地址的。但是这应该是一个很早之前的问题,已经被fix了。

傻傻地build了好多个以后,我想起来,恢复VM以后我是直接把之前的config.xml拷贝回去那个任务的文件夹里面的。进去打开那个config.xml,找到这一行:

<recipientList>$PROJECT_DEFAULT_RECIPIENTS</recipientList>

删掉。就好了。