Selenium Javascript执行程序返回null [英] Selenium Javascript executor returns 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屋!