当前位置: 首页 > 面试题库 >

用Selenium创建和执行Javascript函数

车辰龙
2023-03-14
问题内容

我正在尝试使用Selenium创建和执行JavaScript函数。我这样做是这样的:

js_func = """
     function blah(a, b, c) {
        .
        .
        .
};
"""
self.selenium.execute_script(js_script)
self.selenium.execute_script("blah", 1,2,3)

我没有从第一个错误(创建函数)中得到任何错误,但是第二个错误给了我:

WebDriverException: Message: u'blah is not defined'

我在做什么有效吗?如何判断该函数是否成功创建?如何查看错误(假设存在错误)?


问题答案:

这就是Selenium执行JavaScript的方式:

提供的脚本片段将作为匿名函数的主体执行。

实际上,您的代码是:

(function() {
    function blah(a, b, c) {
        ...
    }
})();

(function() {
    blah(1, 2, 3);
});

并且由于JavaScript的范围规则,blah该匿名函数之外不存在。您必须使其成为全局函数:

window.blah = function(a, b, c) {
    ...
}

或者在同一函数调用中执行两个脚本



 类似资料:
  • 问题内容: 我使用Selenium和chromedriver创建了一个小型网络抓取应用程序,用于将内容输出到excel文件的项目。不幸的是,我为此应用程序开发的人并不是最精通技术的人。 所以我的问题是如何与这些人共享此应用程序? 我查看了py2exe.org,但在创建可执行文件时并未考虑chromedriver。还有其他更好的方法,而无需这些人将文件手动添加到其“ usr / bin”吗? 问题答

  • 问题内容: 我在javascript中有一个名为“ checkdata(code)”的函数,如您所见,该函数接受一个名为“ code”的参数来运行并返回一个15个字符的字符串。 因此,我发现了(并测试了)如何在javascript中调用无参数函数,但是我的问题是,当我调用checkdata(code)时,总是得到“无”返回值。到目前为止,这是我正在做的事情: 但是,正如我之前说的,我一直都没有打印

  • 问题内容: 我想使用码头来启动我的应用程序,因此我添加了下面提到的依赖项。当我运行主要方法Jetty成功启动时(我正在一个struts2 + spring3 + hibernate maven项目中,我也可以将其部署在tomcat中) 现在,我想从war包装pom创建一个可执行jar。所以我在pom中添加了maven-assembly-plugin。(我尝试使用maven jar插件,但未添加依赖

  • 问题内容: 目前正在开发seleniumwebdriver。我有很多下拉菜单,例如可视化,期间,类型等。在下拉菜单中有许多选项。我想从下拉菜单中选择一个选项,我的目标是通过ID查找元素。 但是在HTML标记中,该元素不可见,无法选择该选项。我验证了很多问题,因为他们提到使用javascript exceutor。 谁能帮我html标签的Java脚本: 问题答案: 您可以尝试使用以下脚本使元素可见:

  • 问题内容: 如何实现的?在这里,它说的Java版本是: 但是我找不到C#代码来做到这一点。 问题答案: .NET语言绑定中的对象,方法和属性名称与Java绑定中的对象,方法和属性名称不完全对应。该项目的原则之一是,每种语言绑定都应该使那些习惯于该语言的人“感到自然”。在C#中,您想要执行JavaScript的代码如下