【问题标题】:Get specific value from a message in selenium webdriver从 selenium webdriver 中的消息中获取特定值
【发布时间】:2015-03-30 07:27:01
【问题描述】:

在我的应用程序中,执行完所有操作后,如果我按下保存按钮,我会收到以下消息。

Deal 0000195734 has been saved Sales order 12345 has been created

现在我只想从上述消息中获取数值。不是正文部分。 例如:0000195734 & 12345

因为我需要使用上面创建的值进行搜索。

请找到下面的代码

String deal_num = driver.findElement(By.xpath("//div[@id='CLine1']/span[4]")).getText(); System.out.println(deal_num); deal_num = Deal 0000195734 has been saved

我正在使用 Java 和 Selenium Web 驱动程序。

请推荐

问候, 湿婆

【问题讨论】:

    标签: java selenium xpath selenium-webdriver


    【解决方案1】:

    String deal_num = 交易 0000195734 已保存。

    您可以分两步轻松替换数值前后的字符。

    第一步将数值前的字符替换为空格。

    deal_num= deal_num.replace("Deal "," ");
    

    第二步将数值后面的字符替换为空格。

    deal_num= deal_num.replace(" has been saved"," ");
    

    销售订单的第二条消息也可以这样处理。

    • 记住实现同样的方法还有其他方法,但我 建议你是我找到的最简单的方法。

    【讨论】:

      【解决方案2】:

      如果字符串的格式始终相同,您可以通过以下方式实现:

      String deal_num = driver.findElement(By.xpath("//div[@id='CLine1']/span[4]")).getText();
      deal_num = deal_num.split(" ")[1] // splitting on the basis of space and taking index 2 where your numbers will be available
      

      你提供的下一行也是如此。

      【讨论】:

      • 嗨 Vivek,谢谢它正在工作。但是对于字符串“销售订单 12345 已创建”,如果我将其设为 deal_num = deal_num.split(" ")[2];它给出的错误是“java.lang.ArrayIndexOutOfBoundsException:”请帮助
      • 您是否将其存储在任何其他变量中?如果您使用 deal_num,则 deal_num.split(" ")[1] 已经将其转换为单个字符串,因此拆分它只会给您一个索引。您需要将给定的字符串保存到另一个字符串,然后执行拆分。
      【解决方案3】:

      用户正则表达式从字符串中提取数字。

      Pattern p = Pattern.compile("-?\\d+");
      Matcher m = p.matcher("There are more than -2 and less than 12 numbers here");
      while (m.find()) {
       System.out.println(m.group());
      }
      

      -? 匹配前导负号 - 可选。 \d 匹配一个数字,不过我们需要在 Java 字符串中将 \ 写为 \\。所以,\\d+ 再匹配 1 个数字

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-19
        • 1970-01-01
        • 2020-06-29
        • 1970-01-01
        • 2013-07-17
        • 2012-06-24
        • 2019-11-02
        • 1970-01-01
        相关资源
        最近更新 更多