private void downloadInvoicesWorker() { rowNum = 0; foreach (Invoice invoice in invoiceIpc.invoices) { subStatus = dlStatus.search; fileNameMask = invoice.fileNameMask; Application.Current.Dispatcher.Invoke(new Action(() => { webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync( "try {document.getElementById('content').children[4].children[0].children[1].children[" + rowNum + "].children[0].children[0].click();} catch (err) {alert('eltévedtünk, a kereső oldalon kellene lenni');}"); })); int timeout = 30; while (subStatus != dlStatus.logoff) { Thread.Yield(); Thread.Sleep(1000); Thread.Yield(); if (timeout-- == 0) { Application.Current.Dispatcher.Invoke(new Action(() => { webBrowser.GetBrowser().Reload(); })); timeout = 30; } } rowNum++; } status = dlStatus.logoff; busy(false); clickOnJs("Kilépés"); MessageBox.Show("Ennyi volt"); }
private void sendLogon() { Application.Current.Dispatcher.Invoke(new Action(() => { webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(@" document.getElementsByName('loginform')[0].username.value='" + Properties.Settings.Default.UserName + @"'; document.getElementsByName('loginform')[0].password.value='" + pwd.Password + @"'; document.getElementsByName('loginform')[0].submit();"); status = dlStatus.logon; })); }
private void searchInvoices() { Application.Current.Dispatcher.Invoke(new Action(() => { if (!searchTabUrl.Equals(webBrowser.Address)) { statustext.Text = "Akadály, a kereső oldalra navigáláskor. Újra próbálom"; searchTab(); return; } webBrowser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.forms[0].submit();"); status = dlStatus.found; })); }
private void Url_Open_CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { try { this.RajtaGomb.IsEnabled = false; user.IsEnabled = false; pwd.IsEnabled = false; dlpath.IsEnabled = false; pProvider.IsEnabled = false; pIssuer.IsEnabled = false; pYear.IsEnabled = false; this.webBrowser.DownloadHandler = new DownloadHandler(directoryMask, this.webBrowser, Properties.Settings.Default.OverwriteFiles); busy(true); //if (!System.IO.Directory.Exists(directoryMask)) System.IO.Directory.CreateDirectory(directoryMask); status = dlStatus.home; this.webBrowser.Load(Properties.Settings.Default.StartUrl); } catch (Exception ex) { statustext.Text = ex.Message; } }
private void searchTab() { clickOnJs("Számlakeresés"); status = dlStatus.search; }
private void WebBrowser_LoadingStatusChanged(object sender, CefSharp.LoadingStateChangedEventArgs e) { if (!e.IsLoading) { Application.Current.Dispatcher.Invoke(new Action(() => { statustext.Text = String.Format("{0} {1} {2}", webBrowser.Address, status, subStatus); })); switch (status) { case dlStatus.zero: break; case dlStatus.home: sendLogon(); break; case dlStatus.logon: searchTab(); break; case dlStatus.search: searchInvoices(); break; case dlStatus.found: switch (subStatus) { case dlStatus.zero: collectInvoices(); // azután pegig új szálon letöltés break; case dlStatus.search: clickOnJs("Letöltés"); subStatus = dlStatus.found; subRow = 0; Application.Current.Dispatcher.Invoke(new Action(() => { statustext.Text = String.Format("Letöltés alatt: {0}", invoiceIpc.invoices[rowNum].fileNameMask); })); break; case dlStatus.found: Application.Current.Dispatcher.Invoke(new Action(() => { if (!invDownloadTabUrl.Equals(webBrowser.Address)) { subStatus = dlStatus.search; return; } webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(@" tdata = document.getElementById('content').children[2].children[1].children[0].children[0].children[1].children[0].children[0].children[0].children[0]; if(row=tdata.rows[" + subRow++ + @"]) { if (row && row.children[1] && row.children[1].children[0] && row.children[1].children[0].href) { href = row.children[1].children[0].href; // Dwonload: szamla_pdf, szamla_teho_pdf, teho_all_pdf, szamla_hiteles if(href.indexOf('szamla_pdf') != -1 || href.indexOf('szamla_teho_pdf') != -1 || href.indexOf('teho_all_pdf') != -1 || href.indexOf('szamla_hiteles') != -1 ) { row.children[1].children[0].click(); console.info('row ' + " + subRow + @"); } else // Skip: minden más { console.info('skip row ' + " + subRow + @"); " + mkAnchorIteratorJs("Letöltés") + @" } //TODO: popup ablak kezelése és letöltés if(row.children[1].children[0].href.indexOf('szamla_xml') != -1) {row.children[1].children[0].click(); alert('2');} } else { // trigger the LoadingStatusChanged event from JS console.info('skip row ' + " + subRow + @"); " + mkAnchorIteratorJs("Letöltés") + @" } } else { // trigger the LoadingStatusChanged event from JS console.info('skip row ' + " + subRow + @"); " + mkAnchorIteratorJs("Letöltés") + @" }"); if (subRow > 9) { clickOnJs(" vissza a listához"); subStatus = dlStatus.download; subRow = 0; } Thread.Yield(); })); Thread.Yield(); break; case dlStatus.download: Application.Current.Dispatcher.Invoke(new Action(() => { if (invDownloadTabUrl.Equals(webBrowser.Address)) { Thread.Yield(); Thread.Sleep(2000); Thread.Yield(); } else { subStatus = dlStatus.logoff; } })); break; case dlStatus.logoff: break; } //collectInvoices(); break; } } }