【问题标题】:invoke click on a buton in UWP webview on HTML DOM without an id在没有 id 的 HTML DOM 上调用 UWP webview 中的按钮
【发布时间】:2017-12-31 21:02:55
【问题描述】:

我有 c# UWP 应用程序,我想使用 web 视图单击下面显示的带有 HTML DOM 的按钮。

<button type="button" class="btn btn-primary btn-extra-pad btn-shadow" onclick="checkMsgShowBig()">Send</button>

通常输入有一个id,下面的代码可以解决问题

var functionString = string.Format(@"document.getElementById('id').click();");
await webView.InvokeScriptAsync("eval", new string[] { functionString });

但是按钮只有一个类名。 下面的代码在使用类名时应该可以工作,但它不起作用。

var functionString = string.Format(@"document.getElementsByClassName('id').click();");
await webView.InvokeScriptAsync("eval", new string[] { functionString });

如何让它发挥作用?谢谢。

【问题讨论】:

    标签: c# html dom uwp


    【解决方案1】:

    getElementsByClassName 的返回值是一个数组,因此您应该在使用它之前对其进行索引。

    这是一个代码示例

    private async void SimulateClickAsync()
    {
        var functionString = string.Format(@"document.getElementsByClassName('btn btn-primary btn-extra-pad btn-shadow')[0].click();");
        await webView.InvokeScriptAsync("eval", new string[] { functionString });
    }
    

    【讨论】:

    • 非常感谢,现在正在运行。只是为了理解,如果我有 5 个具有相同类名的按钮,index 值是表示特定按钮还是我们总是用 0 索引?
    • @Zee No. 不同的索引代表不同的按钮。
    猜你喜欢
    • 2018-01-30
    • 2021-07-05
    • 2014-10-02
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    相关资源
    最近更新 更多