Who know Dedendency OkHttp library over 3.14.0 is implemented in webdriver?

1,945 views
Skip to first unread message

Viaczaslau Balashevicz

unread,
May 26, 2019, 6:03:37 PM5/26/19
to Selenium Users

Please who could clarify version OkHTTP impact in webriver
I figure out that in my project where is user version over 3.14.0
testImplementation "com.squareup.okhttp3:okhttp:3.14.0" //version This is important to webdriwer version
testImplementation "com.squareup.okhttp3:logging-interceptor:3.14.0"
testImplementation("org.seleniumhq.selenium:selenium-java:3.141.59")

Looks like needing special OkHttp version in the project.
please, could You advise?
Tested on the simplest code like an open page to avoid other mistakes

Appeared error with driver inner requests:
Here is a stack trace

Using geckodriver 0.24.0 (since Mozilla Firefox 67 is installed in your machine)
Exporting webdriver.gecko.driver as /Users/viachaslau_balashevi/.m2/repository/webdriver/geckodriver/macos/0.24.0/geckodriver

java.lang.NoSuchFieldError: Companion
	at okhttp3.internal.http.HttpHeaders.<clinit>(HttpHeaders.kt:36)
	at okhttp3.internal.http1.Http1ExchangeCodec.reportedContentLength(Http1ExchangeCodec.kt:128)
	at okhttp3.internal.connection.Exchange.openResponseBody(Exchange.kt:124)
	at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:112)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:117)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:90)
	at org.openqa.selenium.remote.internal.OkHttpClient$Factory$1.lambda$createClient$1(OkHttpClient.java:152)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:117)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:38)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:117)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:90)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:84)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:117)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:90)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:84)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:117)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:71)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:117)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:90)
	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:184)
	at okhttp3.RealCall.execute(RealCall.kt:67)
	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)
	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.<init>(RemoteWebDriver.java:131)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147)
	at com.codeborne.selenide.webdriver.FirefoxDriverFactory.createFirefoxDriver(FirefoxDriverFactory.java:31)
	at com.codeborne.selenide.webdriver.FirefoxDriverFactory.create(FirefoxDriverFactory.java:26)
	at com.codeborne.selenide.webdriver.WebDriverFactory.lambda$createWebDriver$1(WebDriverFactory.java:55)
	at java.util.Optional.map(Optional.java:215)
	at com.codeborne.selenide.webdriver.WebDriverFactory.createWebDriver(WebDriverFactory.java:55)
	at com.codeborne.selenide.drivercommands.CreateDriverCommand.createDriver(CreateDriverCommand.java:38)
	at com.codeborne.selenide.drivercommands.LazyDriver.createDriver(LazyDriver.java:93)
	at com.codeborne.selenide.drivercommands.LazyDriver.getAndCheckWebDriver(LazyDriver.java:87)
	at com.codeborne.selenide.SelenideDriver.getAndCheckWebDriver(SelenideDriver.java:143)
	at com.codeborne.selenide.drivercommands.Navigator.navigateTo(Navigator.java:61)
	at com.codeborne.selenide.drivercommands.Navigator.open(Navigator.java:24)
	at com.codeborne.selenide.SelenideDriver.open(SelenideDriver.java:59)
	at com.codeborne.selenide.Selenide.open(Selenide.java:39)
	at WebdriverJunit.openChrome(WebdriverJunit.java:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:628)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:117)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:184)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:180)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:127)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
	at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
	at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
	at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

⇜Krishnan Mahadevan⇝

unread,
May 27, 2019, 12:09:40 AM5/27/19
to Selenium Users
Can you please help share your complete set of dependencies that your test project is using ?

Thanks & Regards
Krishnan Mahadevan

"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"
My Scribblings @ http://wakened-cognition.blogspot.com/
My Technical Scribblings @ https://rationaleemotions.com/


--
You received this message because you are subscribed to the Google Groups "Selenium Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to selenium-user...@googlegroups.com.
To post to this group, send email to seleniu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/selenium-users/f04327c9-9f6a-4630-b06e-a59191e1b499%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Viaczaslau Balashevicz

unread,
May 27, 2019, 12:21:06 PM5/27/19
to seleniu...@googlegroups.com
Sure
File attached 
When You change OkHttp version to last (+)
And run just a simple open page - fail is on connection webriver protocol as far I understand
@Test(suiteName = "Draft test suite"){
@Test
void openFirefoxCustomSize() {
browser = FIREFOX;
browserSize = "1024x768";

open("https://gitlab.com/");
System.out.println("Open Firefox");

}
}

Best regards,
Viachaslau Balashevich
Mob NL: +31636031465



You received this message because you are subscribed to a topic in the Google Groups "Selenium Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/selenium-users/Q2idkLfm4oY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to selenium-user...@googlegroups.com.

To post to this group, send email to seleniu...@googlegroups.com.
dependencies.gradle

John Doe

unread,
May 28, 2019, 7:20:18 AM5/28/19
to Selenium Users
You should remove any OkHTTP dependencies from your build.gradle file. 

Selenium Java client 3.14.159 already has OkHTTP 3.11. 0 dependency, you don't need to declare it separately, it will be retrieved via Gradle transitive dependencies mechanism

If you have some non-Selenium code which uses OkHTTP - make sure to re-write it to be compliant with 3.11.0. You cannot have 2 versions of the same .jar in the CLASSPATH  otherwise you will run into Jar Hell

Example minimalistic build.gradle file (see Selenium with Java for more information if needed)

group 'java-selenium-sample'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile group: 'org.testng', name: 'testng', version: '6.9.9'
    testCompile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.8.1'
}


task "TestWithTestNG" (type: Test) {
    doFirst{
        useTestNG(){
            suites "src/test/resources/testng.xml"
        }
    }
}

task "TestWithJUnit" (type: Test) {
    doFirst{
        useJUnit()
    }
}


Viaczaslau Balashevicz

unread,
May 28, 2019, 7:49:20 AM5/28/19
to seleniu...@googlegroups.com
Thank You,
Very clear explanation.

So is it any list of selenium dependencies to avoid the same issues with others libs?

Best regards,
Viachaslau Balashevich
Mob NL: +31636031465


--
You received this message because you are subscribed to a topic in the Google Groups "Selenium Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/selenium-users/Q2idkLfm4oY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to selenium-user...@googlegroups.com.
To post to this group, send email to seleniu...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages