InvokeMember("Click") Web 浏览器控件错误 C# WPF

Posted

技术标签:

【中文标题】InvokeMember("Click") Web 浏览器控件错误 C# WPF【英文标题】:InvokeMember("Click") Web Browser control error C# WPF 【发布时间】:2018-08-30 16:25:03 【问题描述】:

运行代码时出现此错误。

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: ''System.MarshalByRefObject.InvokeMember(字符串, System.Reflection.BindingFlags,System.Reflection.Binder,对象[], System.Reflection.ParameterModifier[], System.Globalization.CultureInfo, string[])' 由于以下原因无法访问 其保护等级'

我看到单击按钮时,它找到了正确的按钮名称,但没有单击它。以下是我的完整代码。

//LOGIN 
    private void Login_Click(object sender, RoutedEventArgs e)
    
        dynamic d = wb.Document;
        var el = d.GetElementsByTagName("input");
        var button = d.GetElementsByTagName("button");

        d.GetElementsByname("login")[0].value = this.NameBox.Text;
        d.GetElementsByName("password")[0].value = this.PWBox.Text;
        d.GetElementsByname("save")[0].InvokeMember("login");enter code here

    

这是按钮代码

<buttons>
        <button name="save" class="k-btn-dark" type="submit">Login</button>

密码和用户名字段生成正确,但单击按钮时出现“无法访问”错误。

【问题讨论】:

【参考方案1】:

这不是类可访问性的问题吗?还是功能?

看看这篇关于资源的帖子,但它可能与你的情况相同:'Resource' is inaccessible due to its protection level

【讨论】:

我认为你是正确的,因为如果我将 InvokeMember ("submit") 更改为 ("Click") 我会得到同样的错误。所以它在触发之前没有找到它正在点击异常的按钮。我将如何解决这个问题?我似乎找不到帖子所说的“访问修饰符”选项。【参考方案2】:

我明白了!

d.GetElementsByName("save")[0].Click();

不需要 InvokeMember。

【讨论】:

以上是关于InvokeMember("Click") Web 浏览器控件错误 C# WPF的主要内容,如果未能解决你的问题,请参考以下文章

C# WebBrowser 控件 - 使用 InvokeMember("Click") 提交表单不起作用

C#,,InvokeMember("点击")

单击 <button> 标签

vb.net注销链接invokemember

C# onclick点击A标签

MethodInfo.Invoke 与 Type.InvokeMember?