简体   繁体   English

DotNetBrowser 检查元素是否可见

[英]DotNetBrowser check if element is visible

I am trying to implement the following JavaScript function to check if an element is visible or not.我正在尝试实现以下 JavaScript function 来检查元素是否可见。 The issue is that javascript variable is null and cast AsFunction not working of course.问题是 javascript 变量是 null 并且强制转换 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));

Regarding obtaining the javascript function, please consider separating the function definition and returning it to the C# side.关于获取 javascript function,请考虑将 function 定义分离并返回到 ZD7EFA19FBE027D39D74523 端。 The sample source code is demonstrated below:示例源代码如下所示:

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

JSValue javascript = browser.ExecuteJavaScriptAndReturnValue("KBrowserIsHidden;");

Also, please keep in mind that DotNetBrowser does not allow passing the DOM API objects to the JavaScipt - .NET Bridge with the automatic conversion.另外,请记住,DotNetBrowser 不允许通过自动转换将 DOM API 对象传递给 JavaScipt - .NET Bridge。 In the described case, I would like to recommend that you find the required element using the JavaScript code.在所描述的情况下,我建议您使用 JavaScript 代码找到所需的元素。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM