我遇到了Jenkins不会使用已安装的扩展程序启动safari的问题。当我使用相同的bash脚本并通过终端(jenkins之外)执行它时,脚本按预期运行。
有问题的扩展是Selenium Web Driver Safari Extension。 当Safari加载时,我看到提示已迁移扩展。然后,所有自动UI测试都失败了。
我已经谷歌搜索了我的答案并浏览了stackoverfow,但我无法理解。
使用safari_opts.skip_extension_installation = true实例化webdriver
我正在努力找出问题所在。任何帮助都非常感谢。
谢谢!
布赖恩
答案 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是我的密码