Программа Selendroid не подключается к Appium, не может выполнять автоматическое тестирование

Я использовал Selendroid для написания программы JAVA для автоматизации тестирования в приложении для Android, но постоянно возникает ошибка, я включил selendroid-standalone-0.17.0-with-dependencies.jar, java-client-5.0.4.jar . java-client-5.0.4-sources.jar, java-client-5.0.4-javadoc.jar в библиотеке, но ошибка все еще возникает. Помогите, очень нужно.

Ошибка : Exception in thread "main" org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {ELEMENT=1} Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: 'Kapil-PC', ip: '192.168.43.212', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_92' Driver info: driver.version: AndroidDriver at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:360) at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:62) at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.findElement(AndroidDriver.java:1) at org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:403) at io.appium.java_client.DefaultGenericMobileDriver.findElementById(DefaultGenericMobileDriver.java:70) at io.appium.java_client.AppiumDriver.findElementById(AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.findElementById(AndroidDriver.java:1) at org.openqa.selenium.By$ById.findElement(By.java:218) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:345) at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:58) at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.findElement(AndroidDriver.java:1) at inventorytest.InventoryTest.main(InventoryTest.java:85) Caused by: java.lang.ClassCastException: java.util.HashMap cannot be cast to org.openqa.selenium.WebElement at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:358) ... 13 more C:\Users\Kapil\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 10 seconds)

И код:

package inventorytest;
import io.appium.java_client.android.AndroidDriver;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
 import org.openqa.selenium.remote.DesiredCapabilities;
public class InventoryTest {

 private static AndroidDriver driver;
public static void main(String[] args) throws MalformedURLException, 
InterruptedException 
{

DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(CapabilityType.BROWSER_NAME, "hih");

capabilities.setCapability("deviceName", "My New Phone");

capabilities.setCapability("platformVersion", "6.0");


capabilities.setCapability("platformName", "Android");


capabilities.setCapability("appPackage", "com.example.kapil.inventory");              

capabilities.setCapability("appActivity", ".add_new_item");

driver = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);

driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

 driver.findElement(By.id("editText5")).sendKeys("Hello");

Thread.sleep(10000);
 driver.quit();


            }


}

person Kapil Mulchandani    schedule 11.11.2017    source источник


Ответы (1)


Посмотрите, как участники Appium пишут Тесты Selendroid:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
capabilities.setCapability(AndroidMobileCapabilityType.SELENDROID_PORT, SELENDROID_PORT);
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.SELENDROID);
driver = new AndroidDriver<>(service.getUrl(), capabilities);
driver.context("NATIVE_APP");

Проверьте стратегии поиска элементов и убедитесь, что вы используете правильную.

person dmle    schedule 13.11.2017