【问题标题】:Selenium Webdriver: Validate the information displayed in Camel caseSelenium Webdriver:验证骆驼案例中显示的信息
【发布时间】:2016-12-03 07:41:18
【问题描述】:

我正在实现自动化脚本,并使用 selenium webdriver 遵循 BDD 框架。

验收标准:

Scenario: Members name

    Given that the web page is displayed
    When the user clicks anywhere on the member row
    Then member First Name, Middle Initial, Last Name will be  displayed
    And Member First Name, Middle Initial, Last name display in Camel case

能否请您告诉我如何验证 Camel 案例以在网页中显示信息?比如“Jhon D Hamton”。

【问题讨论】:

  • 您有以下三个答案。你觉得它们有帮助吗?

标签: java selenium cucumber


【解决方案1】:

如果您知道如何或能够将整个名称作为字符串获取,则可以使用以下正则表达式来断言它是驼峰式的:

[A-Z]([A-Z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*

这匹配以大写字母开头、仅包含字母和数字、至少包含一个小写字母和至少一个其他大写字母的字符串。

对于Java,你想调用String类的matches()方法,该方法返回true或false:

boolean doesItMatch = yourString.matches('theRegexAbove');

【讨论】:

  • 请您提供验证名字、中间名首字母和姓氏是否大写的代码。 String Name = driver.findElement(By.xpath("xpath_expression").getText();
  • 编辑原答案
【解决方案2】:

好吧,假设你可以抓住你的字符串,我会拆分它然后检查第一个字母是大写的:

boolean isCamelCase(String s) {
    String[] split_string = s.split(" ");
    for(int i=0;i<split_string.length;i++) {
        if(!Character.isUpperCase(split_string[i].charAt(0))){
            return false;
        }
    }
    return true;
}

【讨论】:

  • 非常感谢您的解决方案。请您解释一下它如何验证 First name 的第一个字母,中间名首字母,Last name 是大写。因为我只想验证第一个字母是大写字母。
  • 糟糕!那里有一个小的语法错误(现已修复)。它所做的是将字符串拆分为单词并将这些单词放入数组中,然后循环遍历数组并检查每个单词中的第一个字母是否为大写。
  • 这是我的代码: String Name = driver.findElement(By.xpath("xpath_expression").getText(); System.out.println(Name); Jhon D Hampton 请您提供以下代码验证名字、中间名首字母和姓氏是否大写?
  • 我已将其更改为可以满足您的要求的功能 - 不确定您还在寻找什么。
  • 非常感谢詹姆斯!感谢您的帮助
【解决方案3】:

通过使用WordUtils in the Apache Commons lang library

具体来说,capitalizeFully(String str, char[] delimiters) 方法应该可以完成这项工作:

String blah = "LORD_OF_THE_RINGS";
assertEquals("LordOfTheRings", WordUtils.capitalizeFully(blah, new char[]{'_'}).replaceAll("_", ""));

资源链接:

What is the simplest way to convert a Java string from all caps (words separated by underscores) to CamelCase (no word separators)?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 2021-08-31
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2014-01-07
    • 1970-01-01
    相关资源
    最近更新 更多