Selenium-如何解决execute_script在执行多个javascript语句后不返回任何值的问题

时间:2019-09-21 12:41:36

标签: python selenium

我想使用execute_script返回一个字符串到我的python脚本中,但是我没有从execute_script函数中获取任何字符串

我尝试了一些无效的代码。 Console。在chrome dev工具控制台中记录我的代码。

这是我要执行的Python代码。我希望javascript变量内部有一个字符串,但是它是空的。

javaScript = driver.execute_script('proposedProRata = document.querySelectorAll("#ProposedPercent")' + 'proposedProRataStr = ""' + 'for (let i = 0, element; element = proposedProRata[i++];) { proposedProRataStr = proposedProRataStr + element.value + " " }' + 'proposedProRataStr')

我希望返回一个字符串proposalProRataStr,以便可以在我的Python代码中使用它,但是我没有得到任何返回的字符串,没有错误消息

1 个答案:

答案 0 :(得分:0)

这是遍历所有匹配元素然后返回值的简单方法。

javascript = '''var proposedProRataStr = ""; document.querySelectorAll("#ProposedPercent").forEach(function(el) {proposedProRataStr = proposedProRataStr + el.value + " "});return proposedProRataStr; '''
jsOutput = driver.execute(javascript)
print(jsOutput)

在浏览器控制台中编写工作代码后,只需将整个JavaScript包装在'''中(这样就不必担心处理双引号了。