更改旅行地点。

时间:2014-04-29 13:22:16

标签: selenium safari selenium-webdriver

我是Safari的新手,当我给出时:

new SafariDriver()

我明白了:

java.lang.IllegalStateException: The expected Safari data directory does not exist: /Users/root/Library/Safari
    at com.google.common.base.Preconditions.checkState(Preconditions.java:177)
    at org.openqa.selenium.safari.SafariExtensions.getInstallDirectory(SafariExtensions.java:179)
    at org.openqa.selenium.safari.SafariExtensions.install(SafariExtensions.java:213)
    at org.openqa.selenium.safari.SafariDriverCommandExecutor.start(SafariDriverCommandExecutor.java:95)
    at org.openqa.selenium.safari.SafariDriver.startClient(SafariDriver.java:73)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:112)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:127)
    at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:59)
    at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:52)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
    at com.apple.ist.ets.monsoon.test.ProfilePage.workAround(ProfilePage.groovy:79)
    at com.apple.ist.ets.monsoon.test.ProfilePage.initWebContext(ProfilePage.groovy:88)
    at com.apple.ist.ets.test.BaseWebTest.setUp(BaseWebTest.java:67)
    at com.apple.ist.ets.test.BaseJUnitTestCase.preMethod(BaseJUnitTestCase.java:936)
    at com.apple.ist.ets.test.TestCase.preProcess(TestCase.java:495)
    at com.apple.ist.ets.test.ExecutionComponent.run(ExecutionComponent.java:1481)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:695)

我甚至尝试了以下内容:

        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability("safari.dataDir","/Users/me/Library/Safari")
        driver = new SafariDriver(cap);

但面临同样的问题。我犯错的地方?

感谢。

2 个答案:

答案 0 :(得分:3)

这似乎是一个已知问题。

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

您要搜索的文件夹是否存在?

答案 1 :(得分:0)

启动集线器和节点时,请勿使用&#39; sudo&#39;因为这会在根级别搜索Safari,但您可能已在您的登录用户名下安装了Safari。

如果您是Mac上的管理员,请尝试使用&#39; java -jar selenium-standalone.x.x.x.jar -role hub&#39;从您登录的帐户安装最新的OSX更新/ safari