C# DotNetBrowser检查元素是否可见

C# DotNetBrowser检查元素是否可见,c#,dotnetbrowser,C#,Dotnetbrowser,我试图实现以下JavaScript函数来检查元素是否可见。问题是javascript变量为null,强制转换为函数当然不起作用 var element = node as DOMElement; JSValue javascript = browser.ExecuteJavaScriptAndReturnValue("var KBrowserIsHidden = function (el) { " + "var style = window.getComputed

我试图实现以下JavaScript函数来检查元素是否可见。问题是javascript变量为null,强制转换为函数当然不起作用

var element = node as DOMElement;
JSValue javascript = browser.ExecuteJavaScriptAndReturnValue("var KBrowserIsHidden = function (el) { " +
                "var style = window.getComputedStyle(el); " +
                "return (style.display === 'none' || style.visibility === 'hidden') " +
                "}" +
                "KBrowserIsHidden");
var hidden = Convert.ToBoolean(javascript.AsFunction().InvokeAndReturnValue(null, element));

关于获取JavaScript函数,请考虑分离函数定义并将其返回到C边。示例源代码如下所示:

browser.ExecuteJavaScriptAndReturnValue("var KBrowserIsHidden = function (el) { " +
"var style = window.getComputedStyle(el); " +
"return (style.display === 'none' || style.visibility === 'hidden'); " +
"};");

JSValue javascript = browser.ExecuteJavaScriptAndReturnValue("KBrowserIsHidden;");
另外,请记住dotnebrowser不允许通过自动转换将domapi对象传递给JavaScipt-.NET网桥。在所描述的情况下,我建议您使用JavaScript代码找到所需的元素