2016-11-08 5 views
1

BEREKENVERTELの2つのボタンがあります...コードの第1部が正常に動作し、コードの第2部にアクセスしてボタンをクリックできます動作しません。なぜ私は分からない。セレンの中で繰り返す要素にはどのようにアクセスしますか<button>

パート1:

<button type="button" class="btn btn-primary" ng-click="next(formstep1, 2);calculate(formstep1, 2);" ng-disabled=""><span> 
    Bereken 
</span></button> 

コードSeleniumで使用される:

searchButton = driver.FindElement(By.CssSelector(".btn.btn-primary")); 
     searchButton.Click(); 

パート2:

<button type="button" class="btn btn-primary" ng-click="next(formstep2, 3);calculate(formstep2, 3);" ng-disabled=""><span> 
    Vertel ons iets over de woning 
</span></button> 

Seleniumで使用されるコード:

searchButton = driver.FindElement(By.CssSelector(".btn.btn-primary")); 
     searchButton.Click(); 
+0

1St行の修正、2つの異なるページの2つのボタン –

+0

Madhuあなたの投稿を編集してください。それは不明です –

+1

'コードは機能しません。例外が発生するか、何も起こりません。 – Andersson

答えて

1

元の要素は表示されませんが、依然としてDOMの一部である場合にこの問題が発生しました。そのため、FindElementはDOMの最初の要素(この場合は "Bereken")を見つけてエラーを返します。 Vertelボタンが表示されているときにDOMを検索すると、一致しているクラスで複数の要素が見つかる可能性があります。

例えばNG-click属性は一意であり、あなたはこのようにその値の部分文字列に一致させることができます。プレフィックスの

//Bereken 
berekenButton = FindElement(By.CssSelector("button[ng-click*='formstep1']")); 

//Vertel 
vertelButton = FindElement(By.CssSelector("button[ng-click*='formstep2']")); 

^試合は、#はサフィックスに一致し、*ストリングに一致します。

関連する問題