通过python

时间:2015-06-10 00:20:13

标签: javascript python selenium

我需要在字符串中添加这些字符:"'\;

userID = "__\"__\'__\;__"

我正在通过python运行javascript来更新用户名字段:

driver.execute_script("window.document.getElementById('username').value = '%s';" %userID)

现在我的问题是,最后我的脚本变为:

window.document.getElementById('username').value = '__"__'__\;__';

这会导致错误,因为我的单引号没有转义字符。如何将转义字符保留在单引号前面?

1 个答案:

答案 0 :(得分:1)

不要使用插值。而是将值作为参数传递给execute_script

driver.execute_script("window.document.getElementById('username').value = arguments[0];", 
                       userID)

您在脚本后面传递给execute_script的参数在JavaScript端可用作arguments[0]arguments[1]等。 (这不是一个特殊的Selenium,而是JavaScript如何工作。你给execute_script的脚本包装在一个函数对象中,函数参数可以在arguments object.上找到)

当您将值作为上述参数传递时,Selenium会将Python值序列化为浏览器端的相应JavaScript值,并保留您的字符串。