2016-03-29 17 views
1

Webelement değerlerini yakalamam ve elemanların toplamını bulmalı ve toplamın doğru olup olmadığını doğrulamam gerekir. İşteWeb_aları ekleme selenyum

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); 

bunların webelements ve webelements için yapılamaz '+' operasyonu olarak depCost ve arrCost eklemek mümkün değildir değerleri toplamak için bir alternatif var olduğu Aşağıda benim kodudur.

enter image description here

cevap

1

Bir numaraya metin ayrıştırmak sonra WebElement metni almak ve ilk ihtiyacı:

: Bir Float bir WebElement ayrıştırmak için

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; 

Ve işlevi

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

Diğer değerleri getirmeyi başardım. Şimdi 44 $ için aşağıdaki hatayı atıyordu: "main" iş parçasındaki özel durum java.lang.NumberFormatException: Giriş dizesi için: "$ 44"Java.lang.NumberFormatException.forInputString adresinde\t (Bilinmeyen Kaynak) – Juvelle

+0

"$ 44" bir sayı değil. Numarayı çıkarmak için .trim() .replaceAll ("[^ + -. \\ d] +", "") ile değiştirin. –