# BUG: Katalon V7 cannot cast SmartWaitWebDriver to RemoteWebDriver

**URL:** <https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236>\
**Category:** Bug Report\
**Tags:** bugs-report, katalon-studio\
**Created:** [September 17, 2019, 3:33pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236 "2019-09-17T15:33:00Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [September 17, 2019, 3:33pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/1 "2019-09-17T15:33:00Z")

</div>

Katalon version 7.0 beta

Failure: Cannot cast object ‘com.kms.katalon.core.webui.driver.SmartWaitWebDriver@7cab1508’ with class ‘com.kms.katalon.core.webui.driver.SmartWaitWebDriver’ to class ‘org.openqa.selenium.remote.RemoteWebDriver’

Scope: Every test case does this.

Log:

```nohighlight
1568733925590	mozrunner::runner	INFO	Running command: "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe" "-marionette" "-foreground" "-no-remote" "-profile" "C:\\Users\\Russ\\AppData\\Local\\Temp\\rust_mozprofile.t7aQ9KQ4qrxG"
1568733927591	addons.webextension.screenshots@mozilla.org	WARN	Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: mozillaAddons
1568733927591	addons.webextension.screenshots@mozilla.org	WARN	Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: telemetry
1568733927591	addons.webextension.screenshots@mozilla.org	WARN	Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: resource://pdf.js/
1568733927591	addons.webextension.screenshots@mozilla.org	WARN	Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: about:reader*
JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory.
1568733932231	Marionette	INFO	Listening on port 53068
1568733932338	Marionette	WARN	TLS certificate errors will be ignored for this session
Sep 17, 2019 10:25:32 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[Child 18680, Chrome_ChildThread] WARNING: pipe error: 109: file z:/task_1566864336/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 341
[Child 18680, Chrome_ChildThread] WARNING: pipe error: 109: file z:/task_1566864336/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 341
2019-09-17 10:25:35.636 INFO com.kms.katalon.core.util.KeywordUtil - basePage ERROR_AT_START
Caught: com.kms.katalon.core.exception.StepErrorException: Test Cases/Pages/A1-RunFirst/Test DUMMY : ERROR at or near: 00 - Comment: null. Failure: Cannot cast object 'com.kms.katalon.core.webui.driver.SmartWaitWebDriver@7cab1508' with class 'com.kms.katalon.core.webui.driver.SmartWaitWebDriver' to class 'org.openqa.selenium.remote.RemoteWebDriver'
com.kms.katalon.core.exception.StepErrorException: Test Cases/Pages/A1-RunFirst/Test DUMMY : ERROR at or near: 00 - Comment: null. Failure: Cannot cast object 'com.kms.katalon.core.webui.driver.SmartWaitWebDriver@7cab1508' with class 'com.kms.katalon.core.webui.driver.SmartWaitWebDriver' to class 'org.openqa.selenium.remote.RemoteWebDriver'
	at com.qsi.base.basePage.<init>(basePage.groovy:61)
	at SuiteListener.<init>(SuiteListener.groovy)
	at com.kms.katalon.core.context.internal.TestHooker.invokeContextMethods(TestHooker.java:89)
	at com.kms.katalon.core.context.internal.TestListenerCollector.lambda$3(TestListenerCollector.java:88)
	at com.kms.katalon.core.context.internal.TestListenerCollector.handleListenerEvent(TestListenerCollector.java:85)
	at com.kms.katalon.core.context.internal.ExecutionEventManager.publicEvent(ExecutionEventManager.java:36)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:249)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1568733913115.run(TempTestCase1568733913115.groovy:23)

```

---

<div class="post-metadata">

**Author:** ![ThanhTo](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/thanhto/32/697_2.png) [@ThanhTo](https://forum.katalon.com/u/ThanhTo)\
**Post date:** [September 17, 2019, 4:37pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/2 "2019-09-17T16:37:54Z")

</div>

Hi @Russ_Thomas

An EventFiringWebDriver doesn’t implement RemoteWebDriver interface. You’d probably need to cast into EventFiringWebDriver and then get the wrapped RemoteWebDriver.

May I see what is going on with your code that exhibits this problem ?

I’ll look into this to see if it can be done, but seems tough.

---

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [September 17, 2019, 4:39pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/3 "2019-09-17T16:39:27Z")

</div>

Thanks @ThanhTo.

But I’m not doing this as far as I can tell. I’m just running TCs.

---

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [September 17, 2019, 4:40pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/4 "2019-09-17T16:40:22Z")

</div>

> [@ThanhTo](#):
>
> May I see what is going on with your code that exhibits this problem ?

I’ll reregister and see if I can dig in closer to the error.

---

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [September 17, 2019, 4:51pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/5 "2019-09-17T16:51:11Z")

</div>

Wow. It **_is_** my code…

```auto
  static void moveBrowser(int x, int y) {
    WebDriver driver = DriverFactory.getWebDriver()
    Capabilities cap = ((RemoteWebDriver) driver).getCapabilities() // BUG HERE
    String browserName = cap.getBrowserName()
    // Because IE is poo
    if(browserName != "internet explorer") {
      driver.manage().window().setPosition(new Point(x, y))
    }
  }

```

What should that say instead?

---

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [September 17, 2019, 4:54pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/6 "2019-09-17T16:54:49Z")

</div>

SOLVED - thanks.

```auto
  static void moveBrowser(int x, int y) {
    WebDriver driver = DriverFactory.getWebDriver()
    Capabilities cap = ((SmartWaitWebDriver) driver).getCapabilities()
    String browserName = cap.getBrowserName()
    // Because IE is poo
    if(browserName != "internet explorer") {
      driver.manage().window().setPosition(new Point(x, y))
    }
  }

```

---

<div class="post-metadata">

**Author:** ![ThanhTo](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/thanhto/32/697_2.png) [@ThanhTo](https://forum.katalon.com/u/ThanhTo)\
**Post date:** [September 17, 2019, 4:55pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/7 "2019-09-17T16:55:01Z")

</div>

How about

```auto
((RemoteWebDriver) (((EventFiringWebDriver) driver).getWrappedDriver())).getCapabilities()

```

First cast the driver returned from `DriverFactory.getWebDriver()` into EventFiringWebDriver. Then retrieve the wrapped WebDriver from `getWrappedDriver()` and finally cast that into `RemoteWebDriver`

---

<div class="post-metadata">

**Author:** ![ThanhTo](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/thanhto/32/697_2.png) [@ThanhTo](https://forum.katalon.com/u/ThanhTo)\
**Post date:** [September 17, 2019, 4:55pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/8 "2019-09-17T16:55:49Z")

</div>

Ah @Russ_Thomas

Please note that RemoteWebDriver has method getSessionId(), so if you need that you would need to cast explicitly to RemoteWebDriver. Otherwise casting into SmartWaitWebDriver would suffice

---

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [September 17, 2019, 4:56pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/9 "2019-09-17T16:56:34Z")

</div>

Cool. Thanks @ThanhTo!

---

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [September 17, 2019, 4:57pm UTC](https://forum.katalon.com/t/bug-katalon-v7-cannot-cast-smartwaitwebdriver-to-remotewebdriver/33236/10 "2019-09-17T16:57:21Z")

</div>


