2016-11-24 5 views
0

私はAppiumを初めて使用しています。 私は起動時に連絡先リストにアクセスするように頼むアプリケーションを自動化しようとしています。私は解決のためにさまざまなウェブサイトを研究しましたが、この問題を解決することはできませんでした。appium内の許可ポップアップ(アクセス連絡先リスト)をクリックできません

コード:

public class TestSuiteBase { 
WebDriver driver = null; 

//Element Variables 
String deviceIdTextbox = "et_Registration_DeviceID"; 

@BeforeClass 
public void setup() throws MalformedURLException, InterruptedException { 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability("platformName", "Android"); 
    capabilities.setCapability("platformVersion", "4.4.2"); 
    capabilities.setCapability("deviceName", "0ef3c26f"); 
    capabilities.setCapability("browserName", ""); 
    capabilities.setCapability("app", "D:\\Ashish\\AppiumProject\\Mobile Framework\\apk\\androidApplication.apk"); 
    capabilities.setCapability("appPackage", "com.atyati.rbl.mfi"); 
    capabilities.setCapability("appActivity", "com.atyati.rbl.mfi.Activity.SplashScreenActivity"); 

    AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
    driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); 
    Thread.sleep(10000);   
} 


@Test 
public void Test() throws Exception { 
    Thread.sleep(2000); 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability("appWaitPackage", "com.android.packageinstaller"); 
    capabilities.setCapability("appWaitActivity", ".permission.ui.GrantPermissionsActivity"); 

    System.out.println("Trying to click Allow"); 

    driver.findElement(MobileBy.id("permission_allow_button")).click(); 
    driver.findElement(By.id(deviceIdTextbox)).sendKeys("123456789"); 
} 

@AfterClass 
public void tearDown() throws Exception { 
    driver.quit(); 
} 

出力:私のコードは、アプリケーションが、許可ポップアップ面を起動し、クリックすることができません。

問題:許可ポップアップをクリックできません。

クエリ:各画面に移動する前に「appActivity」を指定する必要がありますか?

他の詳細が必要な場合は教えてください。

答えて

0

どこが間違っているのか分かりました。

ソリューション:私は編集テキストボックス

また
String deviceIdTextbox = "com.atyati.rbl.mfi:id/et_Registration_DeviceID"; 

のための完全なリソースIDを指定する必要があり、活動を指定する必要はありません。

@Test 
public void Test() throws Exception { 
    Thread.sleep(1000); 
    if(androidDriver!=null){ 
     System.out.println("driver does not == null"); 
     System.out.println("Trying to click Allow"); 

     androidDriver.findElement(By.id(contactListAllowPermissionBtn)).click(); 
     Thread.sleep(1000); 
     androidDriver.findElement(By.id(deviceIdTextbox)).sendKeys("123456789"); 
     androidDriver.findElement(By.id(registerUserBtn)).click(); 
    } else { 
     System.out.println("driver == null"); 
    } 
} 
0

このJavaコードを使用すると、許可アプリの許可ボタンを何度も表示することができます。メソッドをクラスファイルに追加して、テストケース内のメソッドを呼び出してください。このコードは、例としてTHIS POSTから取られました。

public void allowAppPermission(){ 
while (driver.findElements(MobileBy.xpath("//*[@class='android.widget.Button'][2]")).size()>0) 

{ driver.findElement(MobileBy.xpath("//*[@class='android.widget.Button'][2]")).click(); 
} 
} 
関連する問題