我正在通过使用方法 executeScript 执行 javascript 代码来实现 selenium 脚本。其中在传递变量时遇到单引号 (') 和双引号 (") 的问题。
不工作:
js.executeScript("return document.querySelector('input[value=\" '"+group_name+"' \"]').value;").toString();
使用静态值:
js.executeScript("return document.querySelector('input[value=\" DemoTest \"]').value;").toString();
这里('input[value=\"'"+group_name+"'\"]')
group_name变量被Java变量引号覆盖,
所以从技术上讲,它的 3 个引号需要通过
1. return语句前""
2. 在querySelector ''
3. 将变量值传递给querySelector ""
请注意:DOM 仅在通过具有内部字符串 2 和 3 的不同引号传递时才接受。
这里我从 DOM 得到 SyntaxError:它说 SyntaxError : missing ) after argument list
那么我如何才能以 DOM 接受所需语法的方式传递变量。
最佳答案
尝试使用下面的代码:
js.executeScript("return document.querySelector('input[value=\"' + arguments[0] + '\"]').value;", group_name).toString();
关于javascript - 如何在 executeScript 方法中显示带有变量的 javascript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50117628/