硒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 风格在 Java 中解析?

在 Pyspark 中旋转时无法解析列名

C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型

C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型

C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型

C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型