首页 > 解决方案 > 如何为变量编写带有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

标签: javaselenium-webdriverxpath

解决方案


推荐阅读