2017-03-28 20 views
0

で、私はこのロケータを持って、リスト内のすべての要素を比較しようとしたしていると主張します: 70.000どのように私は、リスト内のすべての要素が与えられた範囲

私はAssertJを使用して、これを試してみましたが、それは動作しません。 D::私は、私は私と一緒にpacientことしてくださいので、プログラミングを含むセレン及び自動化テストに非常に新しいです。この https://www.imobiliare.ro/vanzare-apartamente/timisoara?id=6923228

をチェックしてみてくださいWebページを追加

List<WebElement> listaPret = driver.findElements(By.className("pret-mare")); 

for (int i = 0; i < listaPret.size(); i++){ 
     assertThat(i).isBetween(50.000,80.000); 
} 
+0

なぜ、assertThat(listaPret.size())だけではないのですか?isBetween(50.000,80.000); ? – SDBot

+0

「動作しません」と定義します。このコードをコンパイル/実行するとどうなりますか?代わりに何が起こると思いますか? Web要素をどのように数値範囲に入れることができますか?どういう意味ですか? 「このバナナは1から10の間でなければならない」と私には分かりやすい。 –

+0

私はこのコードをコンパイルするとき、それはにjava.lang.AssertionErrorを返す: は期待: <0> の間になるように: [50000、80000]、私はそれが含まれている場合iは整数と比較するために、リスト内のすべての要素を変換する必要がありますねその指定された範囲で、それは正しいですか? – Alexei

答えて

2

この試してみてください:あなたはlistaPretから数値を取得しようとしている場合は、この使用

List<WebElement> listaPret = driver.findElements(By.className("pret-mare")); 

assertThat(listaPret.size()).isBetween(50.000,80.000); 

を:@mrfreesterによって示唆されるようにも、より良い(安全であると各ループのために使用して

List<WebElement> listaPret = driver.findElements(By.className("pret-mare")); 

for (int i = 0; i < listaPret.size(); i++){ 
     double price = Double.parseDouble(listaPret.get(i).getText()); 
     assertThat(price).isBetween(50.000,80.000); 
} 

を探している):

List<WebElement> listaPret = driver.findElements(By.className("pret-mare")); 

for (WebElement item : listaPret) { 
     double price = Double.parseDouble(item.getText()); 
     assertThat(price).isBetween(50.000,80.000); 
} 
+0

これはセレクタが50と80の要素を見つけていることを確認しますが(実際には50000と80000を比較していると思いますが)、OPがそれぞれの要素の値をアサーションしていると思います。それは完全にはっきりしていないと言われています。 – mrfreester

+2

Upvoted、私はforeachループを提案したいと思いますが、これはリスト全体を反復するだけです。 'for(WebElement item:listaPret)'を呼び出し、ループ内で 'Double.parseDouble(item.getText()) ' – mrfreester

+0

@mrfreester doneを実行します。 – SDBot

関連する問題