Selenium Javascript执行程序返回null [英] Selenium Javascript executor returns null

查看:213
本文介绍了Selenium Javascript执行程序返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当通过Selenium JavascriptExecutor运行时,我有以下JavaScript代码返回null.但是,在Firefox开发者控制台中运行时,相同的代码返回了一个值.

I have the following JavaScript code returning null when ran through Selenium JavascriptExecutor. However, the same code when ran in Firefox developer console returned a value.

function tmp(){
    var attrb = jQuery(jQuery("[name='q']")[0]).attr('type');
    if(typeof attrb !== 'undefined' && attrb !== false){
        return attrb;
    } else {
        return '';
    }
}

tmp();

以下是我的带有JS的WebDriver代码,与上面的代码相同:

The below is my WebDriver code with the JS the same as above:

JavascriptExecutor jsExec = (JavascriptExecutor)driver;
Object inpType = 
       jsExec.executeScript("function tmp(){...}tmp();");
System.out.println("Type: " + inpType);

上方输出null而不是文本"字符串.有任何想法吗?

Above outputs null instead of "text" string. Any ideas?

推荐答案

,您需要在executeScript()方法中使用返回tmp()而不是 tmp(). 查找相关参考 driver.executeScript()返回简单javascript的NullPointerException

you need to use return tmp() instead of tmp() in executeScript() method. Find the related reference driver.executeScript() returns NullPointerException for simple javascript

这篇关于Selenium Javascript执行程序返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆