2015-06-10 156 views
0

使用硒execute_script當字符去掉,我需要在我的字符串有這些特點:"'\;逃生通過蟒蛇

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

我通過蟒蛇運行的JavaScript來更新用戶名字段:

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

現在我的問題是,最後我的腳本變成:

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

An這導致錯誤,因爲我有單引號沒有轉義字符。我怎樣才能將轉義字符保留在單引號之前?

回答

0

請勿使用插值。相反,該值作爲參數傳遞給execute_script

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

傳遞給execute_script腳本後的參數是可以作爲arguments[0]arguments[1]等對JavaScript端。當您通過值同前面一樣的參數,硒(這不是一個特殊的硒的事情,但JavaScript的是如何工作的。你給execute_script腳本被包裹在一個函數對象和函數參數都可以在arguments object.

將在瀏覽器端將Python值序列化爲其相應的JavaScript值,並保留您的字符串。