硒WD |使用 String 解析为 double 后出现异常错误
Posted
技术标签:
【中文标题】硒WD |使用 String 解析为 double 后出现异常错误【英文标题】:Selenium WD | Exception error appears after using parsing of String into double 【发布时间】:2017-11-26 16:44:01 【问题描述】:解析对我不起作用 - 使用 getText() 将 'newSocket' 作为字符串后,我试图将其解析为 double ,运行测试后出现异常错误。请帮忙
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumPractice2investing
public static void main(String[] args) throws InterruptedException
System.setProperty("webdriver.chrome.driver", "C:\\automation\\drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.investing.com");
driver.navigate().refresh();
WebElement e1 = driver.findElement(By.id("searchTextTop"));
e1.sendKeys("BTC/USD");
Thread.sleep(5000); // Wait until it is loaded
WebElement e2 = driver.findElement(By.id("symbol_BTC/USD"));
e2.click();
Thread.sleep(5000);
WebElement e3 = driver.findElement(By.id("last_last"));
String newSocket = e3.getText();
Thread.sleep(1);
double CurrentSocketValue = Double.valueOf(newSocket); // Getting Exception error here
【问题讨论】:
添加“test”命令时:System.out.println("Test" +newSocket);双 CurrentSocketValue = Double.valueOf(newSocket); >我得到一个数值(作为字符串,所以它不是空字符串) 我想我明白了!由于数字出现在带有标点符号的字符串中(即 2,4544.5),我是否应该在使用解析之前删除标点符号,例如: String123 = newSocket.replaceAll("[\\W]", ""); ? 【参考方案1】:什么是异常消息?
根据您发布的内容,我只能猜测e3.getText()
是一个空字符串。
您可以检查一个空字符串并将newSocket
设置为默认值。
如果它是一个字符串,那么您可以在此Answer 中使用其他方法。
【讨论】:
【参考方案2】:它是空字符串。原因是收到的数字是带有标点符号的“2,749.79”,我找到了一个忽略标点符号的解决方案并解决了它(在上面添加了评论)
【讨论】:
以上是关于硒WD |使用 String 解析为 double 后出现异常错误的主要内容,如果未能解决你的问题,请参考以下文章
C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型
C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型