我正在使用selenium和Python,我正在尝试执行一个JS函数,它接受一个像这样的字符串:
browser.execute_script("foo('someString')")
当someString没有任何换行符时,这是有效的。 如果有换行符,则会发生以下情况:
\n => Parse Error
\\n => Newline is converted to a space
\r\n => Parse Error
\\r\\n => Both characters are converted to a space
有办法做到这一点吗?
答案 0 :(得分:4)
您可以将参数传递给javascript;可以使用arguments
:
browser.execute_script("foo(arguments[0])", 'someString')
browser.execute_script("foo(arguments[0])", 'string with \n is also ok!\n')
答案 1 :(得分:0)
简单的解决方案是将\n
转换为unicode \u000a
。
类似示例:
driver.execute_script("document.getElementById('website_name').value='hello1\u000ahello2'")