If Silk4J does not recognize a mobile device or emulator, the Mobile tab in the Select Application dialog does not display the device or emulator. Additionally, the Web tab of the Select Application dialog does not display the mobile browsers that are installed on the device or emulator.
Reason | Solution |
---|---|
The emulator is not running. | Start the emulator. |
The Android Debug Bridge (adb) does not recognize the mobile device. | To check if the mobile device is recognized by adb:
|
The version of the operating system of the device is not supported by Silk4J. | For information on the supported mobile operating system versions, refer to the Release Notes. |
The USB driver for the device is not installed on the local machine. | Install the USB driver for the device on the local machine. For additional information, see Installing a USB Driver. |
USB-debugging is not enabled on the device. | Enable USB-debugging on the device. For additional information, see Enabling USB-Debugging. |
Chrome for Android might in some cases interpret typing an URL into the address bar as a search. As a workaround you can manually add a command to your script to navigate to the URL.
When the Android Debug Bridge (adb) server starts, it binds to local TCP port 5037 and listens for commands sent from adb clients. All adb clients use port 5037 to communicate with the adb server. The adb server locates emulator and device instances by scanning odd-numbered ports in the range 5555 to 5585, which is the range used by emulators and devices. Adb does not allow changing those ports. If you encounter a problem while starting adb, check if one of the ports in this range is already in use by another program.
For additional information, see http://developer.android.com/tools/help/adb.html.
If you have installed the Android SDK or another tool that uses the Android Debug Bridge (adb), an additional adb server might be running in addition to the one that is used by Silk4J. If the running adb servers have different versions, the connection between the Open Agent and the device might become unstable or even break.
To avoid version mismatch errors, specify the path to the Android SDK directory by setting the environment variable SILK_ANDROID_HOME, for example to C:\Users\<user>\AppData\Local\Android\android-sdk. If the information service was running during this change, use the Windows Service Manager to restart the Silk Test information service with the updated environment variable. If the variable is not set, Silk4J uses the adb version that is shipped with Silk4J.
This error displays if you are trying to start up the emulator and the system cannot allocate enough memory. You can try the following:
Reason | Solution |
---|---|
The iOS device is not in developer mode. | You can enable the developer mode in one of the following two ways:
|
You have recently updated the iOS version of the device. |
|
UI automation is not enabled on the iOS device. |
|
The Web Inspector is not activated on the iOS device, while you are trying to test a mobile web application. |
|
The app that you want to test was not built for the iOS version of the iOS device on which you are testing. | Use Xcode to build the app for the iOS version of the device. |
The Software Update dialog box is currently open on the iOS device. | Close the dialog box and disable automatic software updates:
|
If the Android or the Android Emulator is screen-locked when you start testing, the device or Emulator might display only the button Back in the dynamic hardware controls.
To solve this issue, stop the Open Agent, restart the device, and change the device settings to no longer lock the screen.
To support unicode characters, Silk4J replaces the standard keyboard with a custom keyboard. When testing is finished, the original keyboard is restored. If an error occurs during testing, the custom keyboard might still be active and cannot be replaced.
To solve this issue, manually reset the keyboard under
.If the device, emulator, or Simulator is screen-locked when you start testing, and Silk4J is unable to unlock the screen, the device, emulator, or Simulator might stop responding to any actions.
To solve this issue, stop the Open Agent and change the device settings to no longer lock the screen.
"SilkTestInformationService<version>.pkg" can't be opened because it is from an unidentified developer.
Android apps that require a higher level of security, for example apps that handle financial transactions, might have the FLAG_SECURE flag set, which prevents Silk4J from capturing the app. Silk4J relies on screenshots or on a video of the Android device during recording and will display a black screen of the device in the Recording window, if the Android app that you are testing has this flag set. To test such an app with Silk Test, you have to contact the app development team, and ask them to un-set the FLAG_SECURE flag during testing.
When testing in a cloud environment, showing a video might not work when recording or replaying a test, for example because required ports are not open.
infoservice.disableScreencastHosts=<URL_1>,<URL_2>, ...For example:
infoservice.disableScreencastHosts=http://my-webdriver-server-url.com:80/wd/hubYou can specify URL patterns like *my-webdriver-server-url.com by using asterisks (*) as wildcards.
Silk4J will show a series of screenshots instead of a video when recording and replaying on the specified hosts.
If the version of Xcode that you are using is not supported by Silk4J, for example when you upgrade to the latest version of Xcode, an error message might appear when testing on iOS.
To replace the installed version of Xcode with a supported version, download a supported Xcode version from https://developer.apple.com/download/more/, and replace the unsupported version with the downloaded version. For information about the supported Xcode versions, refer to the Release Notes.
0 2 1 * * find /Library/Caches/com.apple.dt.instruments -mtime +10 -delete
In this example, all log files that are older than ten days will be deleted each day at 2 AM from the directory.
When testing on a physical iOS device, this error usually means that during the build process the WebDriverAgent app could not be signed or that there is a problem with the provisioning profile.
cd /Applications/Silk/Mobile/common/Appium/node_modules/appium-xcuitest-driver xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=<udid>' test
mkdir -p Resources/WebDriverAgent.bundle
Developer Tools Access needs to take control of another process for debugging to continue. Type your password to allow this.
sudo /usr/sbin/DevToolsSecurity --enable
If the rectangles around controls are offset when testing a mobile web application on an iPad, you might have multiple browser tabs open and the Tab bar might be displayed. To fix this issue, close all tabs except one.
When updating to a new version of Silk4J, some Appium apps on any physical mobile devices that have already been used for mobile testing with the previous version of Silk4J are updated automatically. If for any reason these apps are not automatically updated, you might experience difficulties when trying to record or replay tests on the device.
If you are experiencing such issues on a specific iOS device after updating Silk4J, manually uninstall the WebDriverAgentRunner from the device.
Silk4J uses Appium to test mobile applications. Some network proxy settings set in Appium might interfere with recording Silk4J. You could try to deactivate the network proxy settings on the mobile device or Emulator.
Testing on iOS 13 or later can result in unstable test results because the UIWebView controls have been deprecated. Make sure to upgrade the WebView to WKWebView.