2016-07-20 3 views
2

次のシナリオでは、助けてもらえますか?テキストフィールドでJavaを使用しているSelenium Webdriverの小数点以下桁数

、私は入力を与える

String input1 = "120.3456"; 

を言うしかし、システムが自動的に今私は別の文字列にのgetAttribute(「値」)を言う使用して格納します 「120.35」を2進ポイントとディスプレイがかかります

String getValue = driver.findElement(By.xpath("html/....xpath of the text field")).getAttribute("value"); 

Selenium Webdriverでは、指定した入力値が2小数点以下に丸められていることをどのように検証できますか? 誰かが私に最良のアプローチを提供できるのであれば、感謝します。事前に感謝

答えて

-2

あなたは、単に以下のようにそれを行うことができます願っています。 inputvalueの文字列を使用してdoubleに変換する必要があります。 inputを丸めてvalueと比較する必要があります。 2つの値が等しい場合はtrue、そうでない場合はfalseを返します。

String input1 = "120.3456"; 
double input1Rounded = Math.round(Double.parseDouble(input1) * 100.0)/100.0; 
String value = driver.findElement(locator).getAttribute("value"); 
double valueRounded = Double.parseDouble(value); 
return (input1Rounded == valueRounded); 
+1

いいえすべてを小数点以下の基数に変換する必要があります。そこに丸めや切り捨てを行います。浮動小数点値は小数点以下の桁数を持たないため、切り捨てられたり丸められたりすることはできません。 – EJP

+0

@EJPあなたの言っていることに従わない。あなたは精緻化できますか?数字を文字列に変換すると、どのように役立ちますか?このコードは動作します...あなたはそれを試しましたか?これを行う方法の例として、Web上にもあります。 – JeffC

3

次のようにしてみてください -

String input1="120.3456"; 

String getValue = driver.findElement(By.xpath("html/....xpath of the text field")).getAttribute("value"); 

String str = new BigDecimal(input1).setScale(2, BigDecimal.ROUND_HALF_UP).toString(); 

return str.equals(getValue) 

ことができます... :)

関連する問題