2017-03-21 70 views
0

我試圖插入一個HTML代碼(約3000個字母)到Textarea。有.sendkeys,但是這很慢。所以我搜索並找到了一種使用selenium與JavaScript的方式,它運行良好,直到我到了必須添加HTML代碼的地步。我當前的代碼:Selenium Javascript插入HTML代碼到textarea [問題]

public void AttributeSet(string id, string value) { 
    IJavaScriptExecutor js = (IJavaScriptExecutor)browser;  
    js.ExecuteScript("document.getElementById(\"" + id + "\").value = ('" + value + "');"); 
} 

我意識到,這只是罰款與字符串的單行線,但是它有一個困難時期多串和包含在其中的報價""字符串。

由於HTML代碼有一堆報價它一直阻止我這樣做。我試過到目前爲止正在改變我的字符串(換行符\n\")和一堆其他的東西,我忘了。

是否有一個簡單的方法來做到這一點呢?如果是的,請幫我出我會非常感激!

+0

這是什麼瀏覽器?如果IE瀏覽器存在64位版本的驅動程序和.sendKeys()輸入較慢的已知問題。 http://stackoverflow.com/questions/27985300/selenium-webdriver-typing-very-slow-in-text-field-on-ie-browser –

+0

@JoshuaBurns嗨約書亞,它仍然會很慢,因爲它是一個很大的角色這就是爲什麼我更願意立即改變一個區域的價值。 –

+0

似乎你可以在插入它們之前逃避所有問題字符。你的具體問題是什麼? – JeffC

回答

0

我想通了,你添加引用System.Web程序比繼續做

HttpUtility.JavaScriptStringEncode(value); 

謝謝大家誰試圖幫助字符串編碼。

0
瀏覽器您使用的是什麼?如果你使用任何現代適度瀏覽器應該支持ES6多行字符串

爲了使用多小號改變單引號字符'反向'。

js.ExecuteScript("document.getElementById(\"" + id + "\").value = (`" + value + "`);"); 
+0

嗨蘭德爾我使用PhantomJS(無頭瀏覽器)我會嘗試你說的一會兒,在此先感謝:) –

+0

Randall,不幸的是它沒有工作。現在不是多行的字符串也不再工作了。 {「errorMessage」:無效的字符:'''。 –