繁体   English   中英

用硒Python重写JavaScript函数

[英]Rewrite javascript function with selenium python

我需要重写网页加载时由网站创建的现有功能。 该函数是这样的:

function CheckStatus() {
    var vcode = $.trim($("#insertCode").val()).toUpperCase();
    var vreturn = encodeURIComponent(document.getElementById('text_return').value);
... (lots of other stuff)
}

我想重申一下此功能,如下所示:

function CheckStatus() {
 return true;
}

如果我将此功能粘贴到chrome控制台中,则可以毫无问题地进行重写。 但是,当我尝试使用硒时,它不会重写...我认为它会创建另一个具有相同名称的函数。 我在Python中使用Selenium Webdriver的代码是这样的:

driver.execute_script("function CheckStatus() { return true;}")

它不返回错误。 实际上什么也没发生。

有什么线索如何用硒解决吗?

谢谢!

您正在发送一个函数声明 由于您不要求执行任何操作,而是定义了一个函数,因此此处不执行任何操作。 您想要的内容看起来像这样:

driver.execute_script("() => ({ return true;})()")

不要忘记最后实际上调用您的函数

我不确定,但是尝试将函数设置为window对象,也许python的selenium具有另一个名称空间

所以:

driver.execute_script("window.CheckStatus = () => true;")

用类似的方法解决它:

driver.execute_script("CheckStatus = function CheckStatus() { return true;}")

多谢你们!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM