Change the location of the safari.

I am 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 before the same question. Where am I mistaken?

Thank.

+4
source share
2 answers

This is apparently a known issue.

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

Does the folder you are looking for even exist?

+3
source

When starting the hub and node, do not use 'sudo', since it will search Safari at the root level, but you can install Safari under your username.

Mac, "java -jar selenium-standalone.x.x.x.jar -role hub" , , /Safari OSX

0

Source: https://habr.com/ru/post/1538588/


All Articles