2012-09-07 76 views
0

我试图从地址字符串中提取邮政编码,但它包含换行符\ n个字符。我可以问一下如何将它从硒储存的var中删除?我曾尝试使用storeEval | "${Addrsss}".replace("\n", "") | Address。但是,硒IDE将返回错误Threw an exception: unterminated string literalSelenium IDE:如何从存储的字符串中删除 n?

这里是地址: ${Address} = "100 RILEY DR\n AVONDALE,\n ARIZONA\n 85323-2004"

回答

0

可能的方法: 1)找到合适的CSS(或XPath)的元素(地址定位器) 2)然后获取内容使用

String cssSelecotr=..blablabla.. 
//1st way 
String myAddress=driver.findELement(by.cssSelector(cssSelector)).getText(); 
//2nd way, using js executor 
JavascriptExecutor js = (JavascriptExecutor) driver; 
     StringBuilder stringBuilder = new StringBuilder(); 

stringBuilder.append("var x = $(\""+cssSelecotr+"\");"); 
     stringBuilder.append("return x.text().toString();")  ; 


     String myAddress= (String) js.executeScript(stringBuilder.toString()); 

3从元素(文本)),那么你可以申请正则表达式(所有可见的符号)为yourAdress

// myAddress ="100 RILEY DR\n AVONDALE,\n ARIZONA\n 85323-2004"; 

     String myAdressEdited = myAddress.replaceAll("[^\\x20-\\x7E]+",""); 

希望这有助于

1

尝试逃跑的这个序列>替换> UNESCAPE作为一种变通方法来去除新行字符:

  1. 逃离值,
  2. 更换逃脱换行符(%0A )与空白( ''),
  3. UNESCAPE回到原来的值,

storeEval | unescape(escape(storedVars['has_nl']).replace(/%0A/g,'')) | no_nl 

此新行字符看上去都来自一个由浏览器的硒-IDE组合,然后由硒IDE提取作为新行字符(\\n)呈现的HTML断裂标记(<br />)。

+0

这对我来说非常好,只是取代了我作为secon参数逗号空间'.replace(/%0A/g,',')' – Dee

相关问题