2014-12-29 96 views
0

我想在eclipse中使用appium運行在android中的測試。當測試開始並且應用程序啓動時,它會在嘗試按下按鈕時在第一個命令上拋出錯誤。我很確定這個按鈕的id是正確的,因爲selendroid運行相同的代碼。失敗跟蹤處的錯誤顯示java.lang.NullPointerException。這裏是我的代碼:appium測試findElement按鈕單擊不應該當它應該

package thePack; 

import static org.junit.Assert.*; 
import io.appium.java_client.AppiumDriver; 

import java.io.File; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.concurrent.TimeUnit; 

import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.interactions.Actions; 
import org.openqa.selenium.remote.CapabilityType; 
import org.openqa.selenium.remote.DesiredCapabilities; 

public class theTest { 


static AppiumDriver driver; 

@Before 
public void setUp() throws MalformedURLException, InterruptedException, Exception 
{ 
    WebDriver dr; 

    File app = new File("C:\\development\\src\\main\\resources\\app.apk"); 
    DesiredCapabilities capabilities= new DesiredCapabilities(); 
    capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); 
    capabilities.setCapability("deviceName", "Vodafone Smart 4G"); 
    capabilities.setCapability("platformVersion", "4.2.2"); 
    capabilities.setCapability("platformName", "Android"); 
    capabilities.setCapability("app", app.getAbsolutePath());  
    capabilities.setCapability("appium-version", "1.2.1");   
    capabilities.setCapability("appPackage", "mypackage.mine.net");  
    capabilities.setCapability("appActivity", "mypackage.mine.net.activities.mainActivity"); 


    dr = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities) ; 


} 

@Test 
public void login() throws Exception 

{ 
    Thread.sleep(0500);   
    driver.findElement(By.id("english")).click(); 
    Thread.sleep(0500); 
} 

任何想法?謝謝!

回答

0

找出問題所在。對我來說,問題在於Appium版本本身。我正在運行1.3.4.1並使用Android 4.2.2設備。只要我切換到版本1.2.4.1的Appium我沒有問題!

0

行:

capabilities.setCapability(CapabilityType.BROWSER_NAME, 「」);

表示您的測試將在瀏覽器上執行,並且這應在開始測試時打開瀏覽器。因此你的元素永遠不會被發現