Java 在两种不同的情况下重复使用Selenium方法

Java 在两种不同的情况下重复使用Selenium方法,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有一个定义如下的Selenium方法。该方法接受personName字符串,并在删除任何空格后尝试在li元素中查找 现在我想重复使用相同的方法来检查 无空格PersonName无空格 使用空格personName 我如何更新下面的方法以适用于这两种情况,因为在一个页面上,名称可以不带空格呈现,而在另一个页面上,名称可以带空格呈现 public WebElement getPersonByText( String personName ) { String personNameWitho

我有一个定义如下的Selenium方法。该方法接受personName字符串,并在删除任何空格后尝试在li元素中查找

现在我想重复使用相同的方法来检查

无空格PersonName无空格 使用空格personName 我如何更新下面的方法以适用于这两种情况,因为在一个页面上,名称可以不带空格呈现,而在另一个页面上,名称可以带空格呈现

public WebElement getPersonByText( String personName ) {
    String personNameWithoutSpaces = personName.replaceAll("\\s+","");
    return getHelper().getVisibleElement( By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personNameWithoutSpaces + "')]") ); 
}

public WebElement getVisibleElement( final By by ) {
        return getVisibleElement( by, DEFAULT_TIMEOUT, TimeUnit.SECONDS, DEFAULT_TIME_INTERVAL, TimeUnit.MILLISECONDS);
    }

不确定是否需要使用2个try…catch块,或者是否需要使用if..else语句,,,,

根据OP的评论

 public WebElement getPersonByText( String personName ) {

    try{
       driver.findElement(By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personName + "')]") 
       return getHelper().getVisibleElement( By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personName + "')]") );

        }
     catch(NoSuchElementException e){
         String personNameWithoutSpaces = personName.replaceAll("\\s+","");
         return getHelper().getVisibleElement( By.xpath("//div[@id='display']//li[contains(@class, 'person') and contains(.,'" + personNameWithoutSpaces + "')]") );
      }

}

你想用这个方法来检查每个页面有空格和没有空格吗?我想写一个通用的方法来检查这两种情况…这是一种不同的页面…这意味着如果personNameWithoutSpaces存在,那么带有空格的personName将不存在吗?这是正确的…对于每个检查…只有一个带有空格或一个空格如果没有空格,你怎么知道personName是否包含空格?您还使用字符串personNameWithoutSpaces=personName.replaceAll\\s+,;知道它有空格吗?实际上方法中的personName是一样的…我必须写我的逻辑考虑这个…考虑什么?你的意思是你有一个人名,比如说约翰·米勒,你有两个页面,其中一个页面有约翰·米勒,另一个页面有约翰·米勒,你的意思是…我总是传递人名,因为我的名字是xyz…但是页面上的呈现可以是a我的名字是xyz,也可以是b我的名字是xyz。我编辑了我的答案。顺便说一句,你的问题有点误导though@testndtv有帮助吗?