Is it possible to add a refresh button to Mobile Recorder

Hi, I’ve been facing this problem with some android applications where the Webview does not update probably in Katalon’s Recorder and the only solution to this problem is to trigger a ‘Switch to portrait’ action, only then the view is updated.
Is it possible to have a refresh action, I think that would be better than my method.

A screen shot from the recorder

**A screen shot from the application on my device at the same time
****
**

Screenshot_1.png

Screenshot_20180814-135128.png

1 Like

@Chris_Trevarthen Am facing the same. I am unable to switch my app to landscape since it does not support it .

Could you please assist us in the same on how to refresh the mobile screen during Record session?

@Abdulaziz_Alduhami Did you find any other solution in overcoming it?

Thanks in Advance.

Regards,
N.Aishwarya Janani

Hi @janani0515,

Have you tried clicking the “Capture Object” button while recording your test? That should get the preview screen and what you’re seeing in your simulator/device to sync up. You may need to do this whenever you switch screens if Katalon Studio doesn’t detect the screen change for you (which might happen with web views).

Hope this helps,

Chris

1 Like

@Chris_Trevarthen

Thanks for your response. Yes I did ‘Capture Object’ once again for the screen to be visible and it worked.

Now I face yet another issue. I have tapped on a button on my application that is very much available in my object repository but on execution, an error is thrown telling that object does not exist. I am quite confused.

I have verified on the name of the object as well and it is all correct.
Can you please guide me as I am not finding any apt solutions.

1 Like

Hi @janani0515,

That error message may mean that the object doesn’t exist on the screen, even if it’s in the repository. This can sometimes happen if the check for the object is occurring before the screen is loaded or if the object is obscured by another element.

You can check what elements that Appium detects on the screen by logging out the XML contents of the screen. You should be able to do that by putting the following import statements at the top of your test case:

import com.kms.katalon.core.logging.KeywordLogger
import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory
import io.appium.java_client.AppiumDriver

Then in the code for your test, add the following right after the element is expected to appear:

AppiumDriver<?> driver = MobileDriverFactory.getDriver()
KeywordLogger log = new KeywordLogger()
log.logInfo(driver.getPageSource())

When the test runs, you should see an entry in the Log Viewer for “Statement - log.logInfo(driver.getPageSource())” that shows the start of the XML for the screen. If you tap on it, you’ll see all of the XML for the screen on the right-hand pane.

I would check that XML to see if the element shows up there and if it matches the definition you have in your Test Objects. If not, then you might consider adding a MobileBuiltInKeywords.delay() of a second and try printing the screen again to see if the test check is firing before the element appears.

Hope this helps,

Chris

@Chris_Trevarthen
Thank you for the detailed explanation! The button is clicked now when I run my test case which earlier said that it was missing in the Object Repository.
Adding to your solution, I also found that if a particular element is not found in your Object Repository when you execute your test case, examine the property of your element and set the same in the Object property.
In my case, since the ‘button’ element was not clicked when I ran my test case, I checked the ‘clickable’ property to ‘TRUE’.

Refer attached image.

1 Like