我正在使用Selenium C#在Internet Explorer 11中测试相当复杂的Web UI。您可能知道,Selenium的Click()往往不起作用,在这种情况下插入JS click方法是必要的。 我正在使用
运行下面动态生成的脚本(IJavaScriptExecutor)驱动程序).ExecuteScript(脚本)。 这是脚本:
let iFrame = document.getElementById("dkwframe").contentWindow.document;
let element = iFrame.querySelector("[id*='_ImgLnkNewPage_LinkButtonControl']");
element.click();
当我在IE控制台中直接执行脚本时,该脚本运行正常,但在执行时,Selenium我得到了这个:
System.InvalidOperationException : Error executing JavaScript (UnexpectedJavaScriptError)
IE控制台是空的,所以我认为它甚至没有尝试。此外,切换浏览器不是一种选择。
感谢您的帮助
答案 0 :(得分:1)
也许脚本在页面完全加载之前正在执行,尝试把它放在像这样的页面就绪事件中
window.onload = function() {
et iFrame = document.getElementById("dkwframe").contentWindow.document;
let element = iFrame.querySelector("[id*='_ImgLnkNewPage_LinkButtonControl']");
element.click();
}
或者您可以检查是否满载:
if (document.readyState === 'complete') {
}