所以我需要在webbrowser控件中按一个按钮,但它给我一个空引用异常
Browser.Document.GetElementById("homebg").InvokeMember("click");
This is the source code in the webbrowser control
我认为我收到了错误,因为内容是由javascript推送的
那么有人可以帮助我吗?
答案 0 :(得分:0)
您是否测试了null-conditional运营商?这将解决异常。
Browser?.Document?.GetElementById("homebg")?.InvokeMember("click");
如果这样可行,那么您可以尝试一次删除一个问号,以查看从哪里获得例外。
我建议你从:
开始Browser?.Document?.GetElementById("homebg").InvokeMember("click");
我怀疑你没有名为homebg的元素。
答案 1 :(得分:0)
检查WebBrowser.ObjectForScripting 属性 - 这允许您的java脚本与主机通信。所以每当你的content / html准备就绪时,你应该从javascript调用这个对象的一些方法,它会向主机应用程序发出信号(c#代码)你的浏览器内容已经准备就绪,然后你可以模拟点击事件。
例如,在C#代码中
public void OnContentReady()
{
// TODO invoke button click
}
...
// code loading webbrowser
browsercontrol.ObjectForScripting = this;
在您的浏览器中使用js代码
// code that creates the html content
...
// signal the host that content is ready
window.external.OnContentReady();