2016-03-29 14 views
1

Ich muss Werte von Webelementen erfassen und die Summe der Elemente finden und überprüfen, ob die Summe korrekt ist. Unten ist mein Code:Hinzufügen von Webelementen in Selen

WebElement depCost = driver.findElement(By.xpath("html/body/div[1]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[2]/td/table/tbody/tr[3]/td[3]/font")); 

WebElement arrCost = driver.findElement(By.xpath("html/body/div[1]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[2]/td/table/tbody/tr[6]/td[3]/font")); 

WebElement numOfPass = driver.findElement(By.xpath("html/body/div[1]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[2]/td/table/tbody/tr[7]/td[2]/font")); 

WebElement taxes = driver.findElement(By.xpath("html/body/div[1]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[2]/td/table/tbody/tr[8]/td[2]/font")); 

WebElement total = driver.findElement(By.xpath("html/body/div[1]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[5]/td/form/table/tbody/tr[2]/td/table/tbody/tr[9]/td[2]/font/b")); 

Float sumTotal=(((depCost + arrCost)*numOfPass)+taxes); 

Hier ist es nicht in der Lage depCost und arrCost hinzufügen, wie sie WebElements und ‚+‘ Betrieb sind nicht für WebElements getan werden kann, ist es eine Alternative, die Werte zu summieren.

enter image description here

Antwort

1

Als erstes müssen Sie den Text aus dem WebElement zu bekommen, und dann analysieren, um den Text zu einer Zahl:

Float arrCost = Parse(driver.findElement(By.xpath("..."))); 
Float numOfPass = Parse(driver.findElement(By.xpath("..."))); 
Float taxes = Parse(driver.findElement(By.xpath("..."))); 
Float total = Parse(driver.findElement(By.xpath("..."))); 

Float sumTotal= ((depCost + arrCost) * numOfPass) + taxes; 

und die Funktion ein WebElement zu einem Float zu analysieren:

static Float Parse(WebElement element) { 
    return Float.parseFloat(element.getText().trim()); 
} 
+0

Ich war in der Lage, die anderen Werte zu holen. Es ist jetzt der folgende Fehler für $ 44: Ausnahme im Thread "main" java.lang.NumberFormatException: Für Eingabezeichenfolge: "$ 44" \t bei java.lang.NumberFormatException.forInputString (unbekannte Quelle) – Juvelle

+0

"$ 44" ist keine Nummer. Ersetzen Sie .trim() durch .replaceAll ("[^ + -. \\ d] +", ""), um die Zahl zu extrahieren. –