2017-08-31 13 views
1

私はアサーションテストのためにこの要素を識別する方法をいくつか研究し、試しました。 Xpathは機能しませんでしたが、NGモデルは機能しませんでした。何か案は?セレニウムJavaはAngularJS要素を選択できません

<input type="text" ng-class="{'ng-dirty': !merchant.name}" ng- 
    model="merchant.name" required="" class="ng-pristine ng-valid ng-not-empty 
    ng-valid-required ng-touched" style=""> 

コードは、私がこれまで持っている:

@Test 
public static void merchant_name() { 
    driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
    WebElement merchant_name = driver.findElement(
       By.xpath("input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched']") 
      ); 
    Assert.assertEquals(merchant_name.getAttribute("value"), "Regression Testing"); 
} 
+0

さまざまな方法で質問を拡大できますか? –

+0

問題ありません。ここで私の試みはDebanjanBの提案です: – Devvvvv

+0

@Test public static void merchant_name(){driver.manage()。timeouts()。implicitlyWait(15、TimeUnit.SECONDS); WebElement merchant_name = driver.findElement(By.xpath( "input [@ class = 'ng-pristine ng-valid ng-valid-ng-touched']")); Assert.assertEquals(merchant_name.getAttribute( "value")、 "回帰テスト"); \t} – Devvvvv

答えて

0

あなたはclass属性を使用して、次のxpathを使用するように考えることができます。

//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched'] 

別の戦略は、classの両方を使用することであり、 type属性:

//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched' and @type='text'] 
0

これはトリックでした。

@Test 
    public static void merchant_name() { 
    driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
    WebElement merchant_name = 
    driver.findElement(By.xpath("html/body/div[1]/div/ng- 
    view/div/div/div[2]/div/div/ng-form/div[3]/div/input")); 
    Assert.assertEquals(merchant_name.getAttribute("value"), "Regression 
    Testing"); 
    } 
関連する問題