Appium, WebDriver

I am new to Appium. I am trying to execute my selenium script in a mobile phone using Appium. But I got an error like below

org.openqa.selenium.WebDriverException: return value cannot be converted to WebElement: {ELEMENT=0.5768692365381867-1}

The code I'm using is below: -

AppiumDriver d;
    @BeforeClass
    public void setUp() throws Exception
    {
        //Set Capabilities
        DesiredCapabilities caps=new DesiredCapabilities();
        caps.setCapability("deviceName", "Celkon A35K Remote");
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "4.4.2");
        caps.setCapability("browserName", "Browser");

        d = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), caps);
        d.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
        d.manage().timeouts().pageLoadTimeout(120,TimeUnit.SECONDS);
    }
@Test
public void testFBLogin() throws Exception
{
    //Load web page
    d.get("https://www.facebook.com/");
    //Enter user name
    d.findElementByName("email").sendKeys("Appium");
    //Enter password
    d.findElementByName("pass").sendKeys("Appium");
    //Click on Login
    d.findElementByName("login").click();
    Thread.sleep(10000);
}
@AfterClass
public void tearDown()
{
    //Close browser
    d.quit();
}`script:
+4
source share
11 answers

below code will work for you, it is better to test on a real device. the only change I made is "caps.setCapability" ("browser-name", "Chrome");

static AppiumDriver d;
@BeforeClass
public static void setUp() throws Exception
{
    //Set Capabilities
    DesiredCapabilities caps=new DesiredCapabilities();
    caps.setCapability("deviceName", "Celkon A35K Remote");
    caps.setCapability("platformName", "Android");
    caps.setCapability("platformVersion", "6");
    caps.setCapability("browserName", "Chrome");

    d = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), caps);
    d.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    d.manage().timeouts().pageLoadTimeout(120,TimeUnit.SECONDS);
}
@Test
public void testFBLogin() throws Exception
{
    //Load web page
    d.get("https://www.facebook.com/");
    //Enter user name
    d.findElementByName("email").sendKeys("Appium");
    //Enter password
    d.findElementByName("pass").sendKeys("Appium");
    //Click on Login
    d.findElementByName("login").click();
    Thread.sleep(10000);
}
@AfterClass
public static void tearDown()
{
    //Close browser
    d.quit();
}
+2
source

Declare AndroidDriver d; instead of AppiumDriver d.

+1
source
+1

, :

caps.setCapability("browserName", "Browser");

:

caps.setCapability("browserName", "Chrome");

Appium :

https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

 

0

 caps.setCapability(CapabilityType.BROWSER_NAME, "chrome" );

AppiumDriver AndroidDriver, script Android, , IOS Android, , Appium.

RemoteWebDriver: Selenium . , Selenium . Appium -, Appium . RemoteWebDriver , , .

AppiumDriver: RemoteWebDriver, , Appium.

AndroidDriver: AppiumDriver, , Android Appium. , Android- Android.

IOSDriver: AppiumDriver, , iOS Appium. , iOS iOS.

, , . , Android IOS.

http://discuss.appium.io/t/what-is-the-use-or-difference-between-androiddriver-iosdriver-appiumdriver-and-remote-webdriver/8750/2

0

AppiumDriver d;

AndroidDriver <MobileElement> d;

, .

0

Appium, , Appium:

( -)

https://appium.io/docs/en/writing-running-appium/web/mobile-web/#android-mobile-web-automation

  DesiredCapabilities capabilities = new DesiredCapabilities();
  capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
  capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4");
  capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
  capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");

//setup the web driver and launch the webview app.
  URL url = new URL("http://127.0.0.1:4723/wd/hub");
  AppiumDriver driver = new AppiumDriver(url, desiredCapabilities);

  driver.get("http://saucelabs.com/test/guinea-pig");
  WebElement div = driver.findElement(By.id("i_am_an_id"));

  Assert.assertEquals("I am a div", div.getText()); //check the text retrieved matches expected value
  driver.findElement(By.id("comments")).sendKeys("My comment"); //populate the comments field by id.

//close the app.
  driver.quit();

.

0

browseName caps.setCapability("browserName", "Chrome"); , http://127.0.0.1:4723/wd/hub

,

0
source

Before using selenium in locators, change the context from native to web browsing.

How to set context

0
source

Please check out the code below, this may be useful.

    static AppiumDriver d;
    @BeforeClass
    public static void setUp() throws Exception
    {
        //Set Capabilities

       DesiredCapabilities capabilities = new DesiredCapabilities();
  capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
  capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4");
  capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
  capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");

        d = new AppiumDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities );
        d.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        d.manage().timeouts().pageLoadTimeout(120,TimeUnit.SECONDS);
    }
    @Test
    public void testFBLogin() throws Exception
    {
        //Load web page
        d.get("https://www.facebook.com/");
        //Enter user name
        d.findElementByName("email").sendKeys("Appium");
        //Enter password
        d.findElementByName("pass").sendKeys("Appium");
        //Click on Login
        d.findElementByName("login").click();
        Thread.sleep(10000);
    }
    @AfterClass
    public static void tearDown()
    {
        //Close browser
        d.quit();
    }
0
source

In the Desired Features field, add the following additional features:

capability.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "60");
0
source

Source: https://habr.com/ru/post/1685088/


All Articles