【问题标题】:Using select.getOptions() with Selenium to get values将 select.getOptions() 与 Selenium 一起使用来获取值
【发布时间】:2016-02-11 21:36:02
【问题描述】:

我正在使用 selenium 验证一个医生姓名出现在下拉框中的网站。如果数据库中的名称有多余的空格(如“Kildare, Jack, MD”),则应删除空格,如“Kildare, Jack MD”。我正在使用 selenium 方法 select.getOptions()(其中 select 是选择框的 web 元素)。

当我从框中检索日期并打印它时,它显示的名称仍然有空格(请参阅下面的阿洛伊斯阿尔茨海默和西格蒙德弗洛伊德)。在文本框中,它直观地显示了 Sigmund Freud 格式正确,但 Alois Alzhemier 在 Alois 之后仍然有一个空格(见附图)。我不确定这里发生了什么。看起来选择框偶尔会删除空白本身,有时不会。有什么线索吗?

这是来自选择框的调试文本:

DEBUG [PP21644] ----<Alzheimer, Alois , DO>-----
DEBUG [PP21644] ----<Freud, Sigmund      Schlomo, Jr, MD>-----
DEBUG [PP21644] ----<Mayo, Charles Mayo, MMIN>-----

附上它的外观图片。 Sigmund 的格式正确,但 Alois 的格式不正确(请参阅用黄色方块突出显示的空间)。是的,我必须使用著名医生的名字来运行它,以保护实际提供者的名字。

【问题讨论】:

  • 我认为你正在取回一个字符串并打印它。如果是这样,那么您应该可以使用string.trim()。在执行trim() 之前,您可能还想查看string.split(",")
  • OPTIONs 的 HTML 是什么样的?我的猜测是名称部分之间有一些 HTML 标记会导致所有额外的空格。要么,要么他们没有正确清理名称。

标签: java selenium windows-7 format


【解决方案1】:

有几种方法可以做到这一点

  1. 您可以检查 OPTIONs 的 HTML 并找出空格的来源、解析它等以消除空格。我不能在这里提供代码,因为我不知道 HTML 是什么样的。

  2. 根据您提供的内容,另一种方法是使用正则表达式和 .replace() 删除重复的空格并删除逗号前的空格。

    public static void main(String[] args)
    {
        String s1 = "Alzheimer, Alois , DO";
        String s2 = "Freud, Sigmund      Schlomo, Jr, MD";
        String s3 = "Mayo, Charles Mayo, MMIN";
        System.out.println(cleanup(s1));
        System.out.println(cleanup(s2));
        System.out.println(cleanup(s3));
    }
    public static String cleanup(String s)
    {
        return s.replaceAll(" +", " ").replace(" ,", ",");
    }
    

【讨论】:

  • 不确定我的评论发生了什么。消除多余的空格是可以的,但逗号后的空格不行。在这种情况下,开发人员需要修复。
  • 这不会删除空格 after 逗号...只有空格之前。
猜你喜欢
  • 2015-08-22
  • 2015-04-19
  • 2013-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2016-07-09
相关资源
最近更新 更多