点网浏览器检查元素是否可见



我正在尝试实现以下JavaScript函数来检查元素是否可见。问题是javascript变量是空的,并且强制转换为AsFunction当然不起作用。

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;");

另外,请记住,DotNetBrowser不允许将DOM API对象传递给JavaScipt - .NET Bridge并自动转换。在所描述的情况下,我建议您使用 JavaScript 代码找到所需的元素。

相关内容

  • 没有找到相关文章

最新更新