由javaScriptExecutor返回的Null

时间:2019-06-05 13:12:44

标签: javascript jquery selenium

以下代码可在控制台上完美运行,但不能作为字符串在selenium javascript执行程序中传递。请帮助我。

也尝试将完整的脚本包装到函数中,但这也没有用。

var regex = new RegExp("^[0-9]+$"); 
$("#pane-side span[class]").filter(function () {
    return regex.test($(this).text()); 
});

由Javascriptexecutor提供的空值。

1 个答案:

答案 0 :(得分:0)

您必须按如下所示更改javascript。

 var regex = new RegExp("^[0-9]+$"); 
 return regex.test(document.querySelector("#pane-side span[class]").textContent);

从selenium(python)运行此程序:

print(driver.execute_script('var regex = new RegExp("^[0-9]+$"); return regex.test(document.querySelector("#pane-side span[class]").textContent);'))

输出:

False,当跨度文本为“ Hello”时

True,范围为“ 123”

截屏:

enter image description here

编辑:

示例HTML:

<html>
  <body>
    <div id="pane-side">
		<span class="someclass">123</span>
	</div>

   <div id="pane-side">
		<span class="someclass2">no number</span>
	</div>	
 </body>
</html>

jQuery: enter image description here