詹金斯和推出Safari扩展

时间:2015-04-03 19:43:46

标签: bash selenium jenkins safari

我遇到了Jenkins不会使用已安​​装的扩展程序启动safari的问题。当我使用相同的bash脚本并通过终端(jenkins之外)执行它时,脚本按预期运行。

有问题的扩展是Selenium Web Driver Safari Extension。 当Safari加载时,我看到提示已迁移扩展。然后,所有自动UI测试都失败了。

我已经谷歌搜索了我的答案并浏览了stackoverfow,但我无法理解。

  1. 我将Apple dev的证书应用于我的钥匙链的系统文件夹
  2. 已安装2.45 Safari扩展程序并正常运行
  3. 使用safari_opts.skip_extension_installation = true实例化webdriver

    • OSX - 10.10.2
    • Jenkins - 1.606
    • Safari - 8.04
  4. 我正在努力找出问题所在。任何帮助都非常感谢。

    谢谢!

    布赖恩

2 个答案:

答案 0 :(得分:1)

由于Jenkins在干净的环境中工作,即使您已经添加了钥匙串,它也会忽略它。因此,您应该添加一个钥匙串作为构建步骤。类似的东西:

security -v unlock-keychain -p <pass> ~/login.keychain

答案 1 :(得分:0)

是的,stanjer是对的...我只是添加这个答案来改进它。

详细说明这个问题,特别注释“71”。

https://code.google.com/p/selenium/issues/detail?id=7933

我在shell脚本的开头使用此代码,如下所示:

keychain="~/Library/Keychains/login.keychain"
security -v unlock-keychain -p ewew1221 ~/Library/Keychains/login.keychain 

if [ $? -ne 0 ];then
 echo "Cannot open keychain ${keychain}"
 exit 1
fi

ewew1221是我的密码