【发布时间】:2019-09-12 12:39:56
【问题描述】:
我正在使用“geckoWebBrowser1”组件。我已经导航到一个 URL,该 URL 将显示一个带有 ID 的登录文本框:login-email
现在我成功地将“someemail@hotmail.com”放入该文本框中。 但是,实际键入文本框检测到 keydown/keyup 等事件的电子邮件是必要的。因此,当我尝试单击登录按钮时,即使“someemail@hotmail.com”在那里,它也认为文本框中不存在任何文本。
所以我想知道当我在那里写电子邮件时如何安全地模拟关键事件。它必须是安全的,因此如果窗口不活动,则不应使用“SendKeys.Send”。我正在寻找一种安全的方法来做到这一点。例如是否可以为此注入javascript?
文本框的 HTML 如下所示:
<input type="email" autocomplete="username" name="email" id="login-email" autofocus="autofocus" placeholder="Enter e-mail" class="el-input__inner">
//我使用的代码
private void geckoWebBrowser1_DocumentCompleted(object sender, Gecko.Events.GeckoDocumentCompletedEventArgs e)
{
//Input email address into this textBox when the "geckoWebBrowser1_DocumentCompleted" fires!
//<input type="email" autocomplete="username" name="email" id="login-email"
//autofocus="autofocus" placeholder="Enter e-mail" class="el-input__inner">
foreach (var elements in geckoWebBrowser1.Document.GetElementsByTagName("input"))
{
if (elements.Id.ToLower() == "login-email")
{
elements.SetAttribute("value", "someemail@hotmail.com");
break;
}
}
}
【问题讨论】:
标签: javascript jquery html keyevent gecko