我正在使用 selenium 为 webapp 构建和自动化测试脚本,我正在尝试使用 waifForCondition API 的函数,它将等待 JS 脚本的计算结果为 true
。
我目前在页面上有这个来源:
<input id="modifyHostsForm:idDnsIp0_0" type="text" name="modifyHostsForm:idDnsIp0_0" readonly="" disabled="">
应更改为:
<input id="modifyHostsForm:idDnsIp0_0" type="text" name="modifyHostsForm:idDnsIp0_0">
一旦我将某个值放在另一个字段上并在其上触发“模糊”事件(并且该字段因此变为“启用”)。
我正在尝试执行以下 JS 脚本来测试何时启用此字段(基本上是我从“谷歌搜索”中找到的内容):
document.getElementbyId('modifyHostsForm:idDnsIp0_0').disabled == false
但是,我得到了一个 SeleniumException
,表明“对象不支持此属性或方法”。我可以在这里做什么?任何帮助将不胜感激。
最佳答案
经过调查,我找到了答案。我在这里记录它以防有人使用它。
我在 FireBug 控制台中运行我的问题代码并且它工作正常;然而,在执行我的脚本时,我一直收到 SeleniumException
。
原来需要用selenium.browserbot.getCurrentWindow()
让 RC 在您使用的主窗口而不是弹出的控制窗口上执行 JS 脚本。
因此,我实际需要评估的 JS 代码最终是这样的:
selenium.browserbot.getCurrentWindow().document.getElementById('modifyHostsForm:idDnsIp0_0').disabled == false
效果很好。感谢其他提示。
关于javascript - 如何在 Selenium 中使用 JavaScript 检查输入是否被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465615/