我有一个定义如下的Selenium方法。该方法接受personName字符串并尝试查找" li"删除任何空格后的元素。
现在我想重复使用相同的方法来检查
- 没有空格(personNameWithoutSpaces)
- with spaces(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语句,,,
答案 0 :(得分:0)
根据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 + "')]") );
}
}