0
当我尝试以编程方式点击一个输入元素(type =“file”)时,ChooseFileDialogWindow不会出现。 尝试点击“开始上传”,可以在http://imgbb.com/上重新创建相同的问题。在这个网站上,它只适用于SimulateMouseButtonEvent,在www.cs.tut.fi它不起作用。点击输入元素(FileUpload)
将值设置为元素时,会有1-2秒的延迟,直到它移动到下一个元素。在IE中这将会立即执行。 当浏览器关注元素时,这是否在porpuse上完成?有没有办法禁用它?
browser.LoadURL("http://www.cs.tut.fi/~jkorpela/forms/file.html");
browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
{
if (e.IsMainFrame)
{
Browser myBrowser = e.Browser;
DOMDocument document = myBrowser.GetDocument();
foreach (DOMElement el in document.GetElementsByTagName("input"))
{
if (el.GetAttribute("name") == "datafile")
{
el.Focus();
el.Click();
}
}
}
};
谢谢你的澄清和示例代码。 有没有办法获得IFRAME的frameId而不使用myBrowser.GetFramesIds()?因为当我使用GetFramesIds()时,我只获取frameId,但不知道哪个IFRAME对应于它。 我夸大了1-2秒的延迟,但在设置元素值时会有延迟。要查看延迟,您可以创建一个具有2秒间隔的计时器,并在Timer_Elapsed事件中可以设置ex的值。 8个输入元素。 这是没有问题的。 – Samuel
示例代码:https://pastebin.com/PPQ8kQh8 – Samuel
您可以使用FinishLoadingEventArgs中的属性FrameId来了解加载的框架。我耽搁了所描述的问题。它将在下一个版本中修复。 –