I am trying to open safari browser using selenium, Also using crontab to schedule it.when I run my code manually through code or terminal it works fine, but when I schedule it using crontab, it failed giving this error. How can I resolve this?
code to open safari:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.safari.SafariDriver; public class SafariDemo { public static void main(String[] args) { WebDriver driver = new SafariDriver(); driver.navigate().to("http://www.google.com/"); driver.findElement(By.name("q")).click(); driver.close(); } }
ERROR:
ERROR: safaridriver could not launch because it is not configuredcorrectly or you need to authenticate. Re-run safaridriver(1) andpass the '--enable' flag to configure and/or authenticate.For more information, consult the safaridriver(1) man page.Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1709Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'System info: host: 'GauravKumar-MAC.local', ip: 'fe80:0:0:0:809:261e:c8d9:42a1%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.7', java.version: '1.8.0_382'Driver info: driver.version: SafariDriverat org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92)at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131)at org.openqa.selenium.safari.SafariDriver.(SafariDriver.java:81)at org.openqa.selenium.safari.SafariDriver.(SafariDriver.java:63)at org.openqa.selenium.safari.SafariDriver.(SafariDriver.java:41)at org.example.SafariDemo.main(SafariDemo.java:12)Caused by: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1709at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:247)at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:165)at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)atokhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)at okhttp3.RealCall.execute(RealCall.java:77)at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:103)at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:105)at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)... 7 moreCaused by: java.net.ConnectException: Connection refused (Connection refused)at java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:613)at okhttp3.internal.platform.Platform.connectSocket(Platform.java:129)at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:245)