我无法点击拨号器来使用appium执行任何活动

时间:2017-12-16 19:20:49

标签: appium

我试图在内置的手机应用程序中执行某些操作,并尝试按0键(长按),但每次我尝试执行时,都面临问题:

org.openqa.selenium.WebDriverException:返回的值无法转换为WebElement:{ELEMENT = 1} 构建信息:版本:' 3.4.0',修订版:'未知',时间:'未知'

我的代码

package mobileapp.com.example;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;

public class Call {


  AndroidDriver<WebElement> driver;


    @BeforeClass
    public void Setup() throws MalformedURLException {

        DesiredCapabilities cap= new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Fever");
        cap.setCapability("platformVersion", "6.0");
        cap.setCapability("platformName", "Android");
        cap.setCapability("appPackage", "com.android.dialer");
        cap.setCapability("appActivity", "com.android.dialer.DialtactsActivity");

        //driver=new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
        driver=new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    }

    @Test
    public void simpleTest() {

        driver.findElement(By.id("com.android.dialer:id/floating_action_button")).click();


        WebElement ele=driver.findElement(By.id("com.android.dialer:id/zero"));


        TouchAction action=new TouchAction(driver);
        action.longPress(ele);

        ele.click();

    }

}

我使用的是Appium版本1.4.16.1,而appium java客户端版本是5.0.4

1 个答案:

答案 0 :(得分:0)

主要问题是您使用的是 appium服务器和最新 java客户端,因此您的问题是由客户端/服务器版本不兼容引起的。

将服务器更新为 1.7.x

如果定位器是正确的,它应该在更新后工作。或者你可以使用:

driver.pressKeyCode(AndroidKeyCode.KEYCODE_NUMPAD_0); 

其中driverAndroidDriver class

的实例