尝试创建一个简化某些自动化的功能。
当使用参数直接调用javascript时,它可以正常工作并创建文件。
browser.execute_script("HAR.clear({token: \"abcd\"})")
browser.find_element_by_link_text("B").click()
browser.execute_script("HAR.triggerExport({token: \"abcd\", fileName: \"name_of_file\"}).then(result => {})")
当我尝试将其作为变量传递时,没有错误,但是没有创建har文件。
致电:
simple_find("B",'\\"name_of_file\\"')
功能:
def simple_find (element, filename):
browser.execute_script("HAR.clear({token: \"abcd\"})")
browser.find_element_by_link_text(element).click()
options = '{token: \\"abcd\\", fileName: '+filename+'}'
ret=browser.execute_script("HAR.triggerExport(arguments[0]).then(result => {});return arguments[0]",options)
print ret
我添加了返回部分以帮助调试传递的内容,这是输出:
C:>python firefox-Manage.py
{token: \"abcd\", fileName: \"name_of_file\"}
它看起来与之前的调用完全相同,但未创建文件。我错过了什么?
java版本是:1.8.0_66 硒版本是:2.48.2 python版本是:2.7.10
THX
答案 0 :(得分:0)
从Python创建的选项对象看起来格格不入。我没有理由用\\"
包围值:
options = '{token: \\"abcd\\", fileName: '+filename+'}'
我的猜测是你希望将字典直接传递给selenium而不是字符串:
options = {'token': "abcd", 'fileName': filename}