java - 如何为变量编写带有concat函数的xpath
问题描述
excel中的实际字符串是=>“J”字符串第一部分''第二部分
String Itemcodefromexcel=sheet.getRow(1).getCell(1).getStringCellVal
String Itemcode=replace_it(Itemcodefromexcel);
driver.findElement(By.xpath("//td[text()=concat("+Itemcode+")").getText();
上面的语句不起作用
但是如果我从上面的方法(replace_it)手动复制字符串,那么它的工作前: driver.findElement(By.xpath("//td[text()=concat(\'\"\',\'J\"\' ,\" 字符串第一部分\'\",\"\'\",\"第二部分\")").getText();
public String replace_it(String _str){
List<String> str_list = new ArrayList<String>();
String _str1 = "";
for (int i = 0; i < _str.length(); i++){
char char_c = _str.charAt(i);
char char_a = '\'';
char char_b = '"';
int int_a = (int)char_a;
int int_b = (int)char_b;
int int_c = (int)char_c;
if(int_c == int_a){
str_list.add( "\\\"" + _str1 + "\\\'\\\"");
_str1 = "";
}
else if(int_c == int_b){
str_list.add( "\\\'" + _str1 + "\\\"\\\'");
_str1 = "";
}
else{
_str1 += char_c;
}
}
str_list.add("\\\"" +_str1 + "\\\"");
return String.join(",",str_list);
}
replace_it 方法将 string="J" String First Part''SecondPart 转换为 string=\'\"\',\'J\"\',\" String First Part\'\",\"\'\", \“第二部分\”
所以我的问题是如果我从相同的方法手动复制字符串然后它的工作但通过变量它不工作所以我猜问题是在编码 xpath concat 但无法解决它
语言:selenium 和 java
也尝试了下面的语句但不起作用
driver.findElement(By.xpath("//td[text()=concat(\'"+Itemcode+"\')").getText();
driver.findElement(By.xpath("//td[text()=concat('"+Itemcode+"')").getText();
注:ItemCode为动态变量,取值来自excel
解决方案
推荐阅读
- typescript - 'DocumentData | 类型的参数 undefined' 不可分配给“DocumentData”类型的参数
- http - 用特殊字符编码文件名以上传到 jmeter 中的 post Http 请求
- javascript - 有没有办法“使用”给定的输入值?
- postgresql - PostgreSQL如何将时区偏移的日期转换为UTC?
- python - 如何修复“AttributeError:'Settings' 对象没有属性 'ROOT_URLCONF'”
- python - 如何将JPG转换为适合Python?
- javascript - 我希望 setinterval 仅自动刷新脚本 PHP Javascript Ajax 的一部分
- freemarker - 使用 FreeMarker 包含模板时保持缩进
- angular - 缺少元素时如何防止地图失败
- java - 检索arraylist JAVA的获胜者