batman
batman

Reputation: 4928

Change the safari location.

I'm new to Safari and when I give :

new SafariDriver()

I get :

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)

I tried even the following:

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

But facing the same issue. Where I'm making mistake?

Thanks.

Upvotes: 4

Views: 959

Answers (2)

Dineshmohan
Dineshmohan

Reputation: 86

When launching the hub and node, don't use 'sudo' as this would search for Safari at the root level, but you might have installed Safari under your login user name.

If you are admin on your Mac, try simply 'java -jar selenium-standalone.x.x.x.jar -role hub' from the account where you logged in to install latest OSX update/safari

Upvotes: 0

Marshall Tigerus
Marshall Tigerus

Reputation: 3764

This appears to be a known issue.

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

Does the folder you are searching for even exist?

Upvotes: 3

Related Questions