我的目标是使用WPF应用程序为我的用户必须与之交互的旧网页表单添加一些字段验证和逻辑。
我在WPF中构建了表单字段和逻辑,并且可以使用cefsharp打开浏览器页面。现在我想弄清楚如何填写字段,并调用一些JavaScript函数。
所以,例如,我试图通过在页面加载后触发下面的javascript来打开一个框架:
<a tabindex="0" href="javascript:;" onclick="showTicket();" onmouseover="window.status='Insert a new ticket';return true;" onmouseout="window.status=''">Ticket</a>
private void Ticket_Click(object sender, RoutedEventArgs e)
{
BrowserControl.ExecuteScriptAsync("showTicket();");
}
但这实际上并没有呈现框架,而且我已经尝试调用大型机,但这也不起作用,我是否需要找到html元素并调用onclick按钮事件,或者可能找到框架,但我认为这应该由我无法访问的脚本处理。
框架打开后我需要做的下一件事就是填写一些html字段,如下所示:
<textarea class="form-control required" maxlength="255" name="Description" tabindex="0" id="html001HTML" rows="3"></textarea>
用户必须与表单进一步交互,这就是为什么我不打算以编程方式处理所有内容。我只需要在文本字段中添加一堆预选文本。
答案 0 :(得分:0)
经过几个小时的搜索,并使用Chrome的Devtools,我终于找到了答案: 首先我必须找到iframe,然后使用contentWindow来调用该函数。
BrowserControl.ExecuteScriptAsync("document.getElementById('iframe1').contentWindow.Ticket()");
我在这里找到答案:Invoking JavaScript code in an iframe from the parent page