2

我已经成功安装了 safari 驱动程序的 safari 开发者证书。我已经构建并添加到 safari 扩展构建器。准备工作已经完成。但是,当我运行我的 selenium 脚本时,Safari 服务器在一个端口上启动,然后在我的 Eclipse 控制台中出现以下错误,如下所示:

Oct 27, 2014 3:49:37 PM org.openqa.selenium.safari.SafariDriverServer start
INFO: Server started on port 22131
java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.openqa.selenium.safari.SafariDriverCommandExecutor
at org.openqa.selenium.safari.SafariDriverCommandExecutor.start(SafariDriverCommandExecutor.java:99)
at org.openqa.selenium.safari.SafariDriver.startClient(SafariDriver.java:115)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:115)
at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:101)
at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:94)

Safari 浏览器打开时出现错误“Safari 找不到文件”

任何帮助将不胜感激

4

4 回答 4

5

嗨,
设置 Selenium 测试以在 Safari 浏览器上运行是一个相当复杂的过程。您需要在您的机器上安装 Safari Extensions Developer Certificate,并在 Safari 浏览器中安装 selenium webdriver 作为扩展。

Mac 10.9 及以下操作系统上的 Safari 浏览器自动化和 Selenium 组合也存在一些稳定性问题。Mac Yosemite OSX 和 Safari 8.0.x 组合以及 Selenium v​​2.45.0 的稳定性要好得多

设置的详细步骤可以在这里看到

问候,
VJ

于 2015-04-29T13:18:08.723 回答
1

可能是 Webdriver 版本的问题,请使用最新的 Webdriver 版本,Safari 驱动与 Firefox 驱动一样,与 Webdriver 捆绑在一起,您只需使用以下代码调用驱动即可:

 SafariOptions options = new SafariOptions();
 options.setUseCleanSession(true); //if you wish safari to forget session everytime
 dvr = new SafariDriver(options); 
于 2014-10-29T02:13:14.713 回答
1

从 Selenium 2.30.0 开始,SafariDriver 与 Selenium 服务器捆绑在一起。如果您希望从源代码构建驱动程序,请转到 SafariDriverInternals 页面。现在,获取 Selenium jar 的副本并将其添加到您的类路径中。为 Safari 编写测试与使用 FirefoxDriver 一样简单:手动安装最新的 Safari 扩展 (2.43.1):-

-

于 2014-12-04T07:30:42.980 回答
0

在最新的 Safari(截至 2016 年 11 月的 10.0.1)中,WebDriver 支持默认关闭。要打开 WebDriver 支持,请执行以下操作:

  • 确保“开发”菜单可用。可以通过打开 Safari 首选项(菜单栏中的 Safari > 首选项),转到高级选项卡并确保选中在菜单栏中显示开发菜单复选框来打开它。
  • 在“开发”菜单中启用远程自动化。这可以通过菜单栏中的开发 > 允许远程自动化进行切换。
  • 授权 safaridriver 启动托管本地 web 服务器的 webdriverd 服务。为此,请手动运行路径中存在的 safaridriver/usr/bin/safaridriver并完成身份验证提示。

现在 safari 已准备好运行您的 webdriver 脚本。更多详情请点击这里

于 2016-11-21T15:13:00.637 回答