首页 > 解决方案 > 使用 CEFSharp 设置动态下拉列表的值

问题描述

我正在尝试使用动态下拉列表自动填写网页。

当用户手动更改该下拉列表的值时,页面上的其他位置会出现第二个下拉列表进行更新。

我可以使用我的应用程序设置第一个下拉列表的值,如下所示:

browser.GetBrowser().GetFrame("mainFrame").ExecuteJavaScriptAsync("document.getElementById('ddlist1').value=" + '\'' + 1 + '\'');

但是,这不会像预期的那样更新第二个下拉列表。任何人都可以帮忙吗?



但是,我可以使用标准的 WebBrowser 控件来做到这一点,就像这样(这是在 VB 中)使用 .RaiseEvent("onchange"):

For f = 0 To frames.Count - 1
    Dim frameDoc As HtmlDocument = WebBrowser1.Document.Window.Frames(f).Document
    Dim frameEle As HtmlElement = frameDoc.GetElementById("ddlist1")
    If frameEle IsNot Nothing Then
        frameEle.SetAttribute("value", 1)
        GetOriginalStates()
        frameEle.RaiseEvent("onchange")
    Exit For
    End If
Next

标签: javascriptc#html.netcefsharp

解决方案


推荐阅读