Selenium IDE:如何从存储的字符串中删除\ n?

时间:2012-09-07 17:43:51

标签: string selenium ide

我正在尝试从地址字符串中提取邮政编码,但它包含换行符\ n字符。请问如何从硒储存的var中除去它?我曾尝试使用storeEval | "${Addrsss}".replace("\n", "") | Address。但是,selenium ide将返回错误Threw an exception: unterminated string literal

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

2 个答案:

答案 0 :(得分:1)

尝试使用此转义序列>将> unescape替换为删除换行符的解决方法:

  1. 逃避价值,
  2. 将转义的换行符(%0A)替换为空白(''),
  3. Unescape回到原始值,
  4. storeEval | unescape(escape(storedVars['has_nl']).replace(/%0A/g,'')) | no_nl
    

    这个新行字符似乎来自HTML中断标记(<br />),它由浏览器-Selenium-IDE组合呈现,然后由Selenium IDE提取为新行字符(\\n) 。

答案 1 :(得分: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

应用regExp(所有可见符号)
 //  myAddress ="100 RILEY DR\n AVONDALE,\n ARIZONA\n 85323-2004";

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

希望这有帮助