0

我正在尝试从地址字符串中提取邮政编码,但它包含换行符 \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"

4

2 回答 2

1

尝试使用以下转义>替换>取消转义序列作为解决方法来删除换行符:

  1. 逃避价值,
  2. 将转义的换行符 ( %0A) 替换为空白 (''),
  3. Unescape 回到原来的值,

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

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

于 2015-03-20T04:07:09.230 回答
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)然后您可以为您的地址应用正则表达式(所有可见符号)

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

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

希望这可以帮助

于 2012-09-09T00:00:41.373 回答