gpt4 book ai didi

javascript - 如何使用 Selenium 执行网站脚本中定义的 JavaScript 函数?

转载 作者:行者123 更新时间:2023-11-28 05:48:06 27 4
gpt4 key购买 nike

我正在使用一个网站,我需要使用 Selenium 运行一些 js 代码。为了让事情变得更容易,我需要运行网站脚本中声明的函数。
例如,该网站使用名为 document_handler.js 的脚本文件,其中包含以下代码:

 (function ($) {
var getConversationId = function(){
return $('input[name="conversationId"]').val()
};
})(jQuery);

在 Selenium 中,如果我运行:

js_eval = driver.execute_script("return getConversationId()")

我得到:

selenium.common.exceptions.WebDriverException: Message: getConversationId is not defined

如果我运行:

js_eval = driver.execute_script("return $.getConversationId()")

我得到:

selenium.common.exceptions.WebDriverException: Message: $.getConversationId is not a function

如何加载网站 javascript 文件,以便我可以在 Selenium 中使用其功能?或者我的代码有问题?

最佳答案

如果这是您有权访问的脚本,则必须使该函数可用于外部/全局作用域。最简单的方法是将其分配给 window 对象,它应该可以工作。

(function ($) {
window.getConversationId = function(){
return $('input[name="conversationId"]').val()
};
})(jQuery);

或者这样,基本上是一样的..

var getConversationId;
(function ($) {
getConversationId = function(){
return $('input[name="conversationId"]').val()
};
})(jQuery);

关于javascript - 如何使用 Selenium 执行网站脚本中定义的 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38315819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com