我是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);
但面临同样的问题。我犯错的地方?
感谢。
答案 0 :(得分:3)
答案 1 :(得分:0)
启动集线器和节点时,请勿使用&#39; sudo&#39;因为这会在根级别搜索Safari,但您可能已在您的登录用户名下安装了Safari。
如果您是Mac上的管理员,请尝试使用&#39; java -jar selenium-standalone.x.x.x.jar -role hub&#39;从您登录的帐户安装最新的OSX更新/ safari