2017-06-07 6 views
1

以下のアイデア。appiumどのように機能を無効にする

標準の機能は、ネイティブアプリケーションを開くように設定されています。

capabilities.setCapability("app", app.getAbsolutePath()); 

これは私がChromeで起動したいものの特定のテストを持っている@BeforeMethod注釈(TestNGの)

と方法で定義されています。どのように私はこれを達成することができますか?ある特定のテストの機能を何らかの方法で上書きすることはできますか?

がこの機能を考慮し、多分あなた自身のデータを実装するデータプロバイダとtestng.xml

  • 答えて

    0

    TestNGのは、あなたが2つの異なる方法であなたの試験方法に直接パラメータを渡すことができますあなたの特定のテストメソッドに別の設定を提供するプロバイダ。あなたも

    0
    <suite name="Suite" parallel="none"> 
    <test name="Test1"> 
        <parameter name="Device" value="ABCD" /> 
        <parameter name="Port" value="4723" /> 
         <classes> 
          <class name="" /> 
          <methods> 
    
          </methods> 
         </classes> 
        </test> 
    </suite> 
    
    use following annotations on your desired capability method and pass them in desired capability 
    @BeforeTest/@Beforemethod/@Beforeclass 
    @Parameters({"Device","Port"}) 
    public void desiredcapability(string Device,string Port) 
    { 
    
    
    } 
    
    +0

    テストメソッドごとに異なる設定と機能を持つappiumサーバーを準備し始めることができる。このようにして、私はすでにデバイスIDを指定するには、私のTestNGのファイル内のパラメータ、プラットフォーム、デバイス名を使用して....しかし、これらは、私が実行しているすべてのテストメソッドに適用されます。 私の問題は、テストメソッドの99%がネイティブアプリで実行されていますが、ブラウザを開くことから始めて1つのテストがあり、その途中でネイティブアプリケーションが開きます。 セットアップメソッドに「browserName」機能を追加することはできません。これは、残りのテストが失敗するため、ブラウザが常に開くためです。アプリケーパビリティに優先度があると思われる。 これで、私の '@beforemethodを適応させないで解決策を探しています。これは99%で動作します。 – DDB

    +0

    私はこれを試しました 私たちはブラウザを起動する必要があるときに私たちはtestng capabilities.setCapability( "browserName"、 "chrome")を通してブラウザパラメータでクロムを渡すことができます。 ブラウザを起動する必要がないときは、testng capabilities.setCapability( "browserName"、 "");によってブラウザパラメータに空のスペースを渡すことができます。私はこれが私のために正常に動作していることをテストしました。 – shiv

    関連する問題