Я пишу программу очистки.Не удалось щелкнуть метки привязки во второй раз
В самый первый раз, когда я могу щелкнуть метки привязки, но как только я снова петлю в том же не происходит. Я сделал это в экземпляре Watin IE. Я сомневаюсь, что это из-за задней части экземпляра IE, который я сделал.
Пожалуйста, найдите две части кода.
Загрузка метод ФПВ в
private void DownloadFiles(IE ieInstance, HTMLDocument document_sub)
{
// int chktest = 2;
try
{
foreach (HTMLAnchorElement anchorTagPg1 in document_sub.getElementsByTagName("a"))
{
if (anchorTagPg1.innerText.Contains("Monthly Statement"))
{
string urltemp = anchorTagPg1.outerHTML.ToString();
int startTextpos = urltemp.IndexOf("window.open");
string spltstr1 = urltemp.Substring(startTextpos);
int endpos = spltstr1.IndexOf(')');
string spltstr2 = spltstr1.Substring(0, endpos);
spltstr2 = spltstr2.Replace("window.open(", "");
string[] manipulatestrsplt = spltstr2.Split(',');
string finalmanipstr = manipulatestrsplt[0].Replace("'", "");
finalmanipstr = finalmanipstr.Replace("amp;", "");
finalurl = "https://myaccount.pseg.com/psegbdisu/" + finalmanipstr;
//anchorTagPg1.click();
//ieInstance.WaitForComplete();
ieInstance.GoToNoWait(finalurl);
Thread.Sleep(5000);
SendKeys.SendWait("^%S"); // to get the Save As window...
Thread.Sleep(5000);
SendKeys.SendWait("abc123");
Thread.Sleep(5000);
SendKeys.Send("^S");
Thread.Sleep(5000);
SendKeys.SendWait("DownloadedFile" + iFileCnt + ".pdf"); // Enters File Name
Thread.Sleep(5000);
SendKeys.Send("{ENTER}");
iFileCnt++;
//chktest++;
Thread.Sleep(5000);
ieInstance.Back();
// bool rtnBack = ieInstance.Back();
Thread.Sleep(10000);
// }
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
Другой метод, где, в котором я не могу ударить якорный тег, не в состоянии поднять OnClick событие.
private void ClickSelectAccount(IE ieInstance)
{
FrameCollection hframesSelAcct = ieInstance.Frames;
HTMLDocument document_sub_SelAcct = ((mshtml.HTMLDocument)(((WatiN.Core.Native.InternetExplorer.IEDocument)(((WatiN.Core.FrameCollection)(hframesSelAcct))[1].NativeDocument)).HtmlDocument));
foreach (HTMLAnchorElement anchorTagSelectAcct in document_sub_SelAcct.getElementsByTagName("a"))
{
if (anchorTagSelectAcct.innerText.Contains("Select Account"))
{
Thread.Sleep(2000);
//anchorTagSelectAcct.click();
anchorTagSelectAcct.FireEvent("onclick");
Thread.Sleep(10000);
ieInstance.WaitForComplete();
anchorTagSelectAcct.click();
Thread.Sleep(10000);
break;
}
}
}
Может кому-то помочь, первый раз, когда второй метод работает нормально, но не второй раз. У меня есть сомнение с экземпляром IE, поскольку я пробовал с большим временем сна, а также его способность идти в цикле, но просто не могу нажать ссылки.
Заранее спасибо