I tried to run the below code
public class TestSelendroidApp {
public static AndroidDriver driver;
public static void main(String[] args) throws MalformedURLException, InterruptedException {
File app = new File("E:\software\selendroid-test-app-0.11.0.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.2.2");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.findElementByAndroidUIAutomator("UiSelector().className(\"android.widget.CheckBox\").checked(false)").click();
driver.quit();
}
}
After running this code I am getting the following error:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 565 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:33'
System info: host: 'xxxxxxxxxxxxx', ip: 'xxxxxxxxxxxxxxxxxx', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities [{app=E:\software\selendroid-test-app-0.11.0.apk, networkConnectionEnabled=true, warnings={}, databaseEnabled=false, deviceName=42033d5fcacf4100, platform=LINUX, desired={app=E:\software\selendroid-test-app-0.11.0.apk, platformVersion=4.2.2, automationName=Appium, platformName=Android, deviceName=Android}, platformVersion=4.2.2, webStorageEnabled=false, locationContextEnabled=false, automationName=Appium, browserName=Android, takesScreenshot=true, javascriptEnabled=true, platformName=Android}]
Session ID: 72adde8a-db33-4f2b-a26e-90f1640cb7c4
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:176)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:352)
at io.appium.java_client.android.AndroidDriver.findElementByAndroidUIAutomator(AndroidDriver.java:264)
at TestSelendroidApp.main(TestSelendroidApp.java:58)
Solution for the above error is:
The above error comes when the condition is false and the element could not be located with the given search criteria but still we are trying to perform some action over the webelement. For eg: in the above highlighted line of code, we are trying to click the checkbox which is not checked(ie trying to click the unchecked checkbox) but the checkbox is in checked state, so the unchecked checkbox could not be located and we got the above error.
In the above code if we pass ''true' as an argument in checked() method then the webbelement could be located.
driver.findElementByAndroidUIAutomator("UiSelector().className(\"android.widget.CheckBox\").checked(true)").click();
0 Comment(s)