即使javascript在控制台中返回值,getEval也会在Selenium上返回null

时间:2013-03-26 16:52:43

标签: javascript selenium getelementbyid

我在Selenium中使用以下javascript运行getEval:

document.getElementById("j_id0:j_id3:mainBlock:j_id40").children[0].children[0].children[0].children[0].children[0].children[0] .children[2].children[0].children[0].children[0] .children[0].children[1];

当我在控制台中运行代码时,它会返回正确的结果。

当我导航到我需要找到的元素所在的页面并单击Selenium中的“查找”按钮时,它会找到并突出显示正确的元素。然而,当我实际在Selenium中运行该行时 - 即使我导航到正确的页面并仅运行该行 - 我收到一条消息说

[error]Threw an exception: document.getElementById(...)is null

如何正常使用?

1 个答案:

答案 0 :(得分:2)

在你的实际JS开始尝试之前,只需要包含 this.browserbot.getUserWindow()

selenium.getEval("this.browserbot.getUserWindow().document.getElementById("j_id0:j_id3:mainBlock:j_id40").children[0].children[0].children[0].children[0].children[0].children[0] .children[2].children[0].children[0].children[0] .children[0].children[1]")