void OnConsoleMessage(object sender, ConsoleMessageEventArgs e) { if (e.Message.Contains("Uncaught") && (e.Message.Contains("modori") == false) && (e.Message.Contains("setPostLink") == false)) { MessageBox.Show("OnConsoleMessageError!"); Product.UploadResult = "Failed"; Product.UploadFailedReson = e.Message; Product.UploadDateTime = DateTime.Now; TextUtil.ArchiveProduct(Product); FileLog.Error("OnConsoleMessage", new Exception(e.Message + "\r\n" + e.Source), LogType.Error); ChromiumWebBrowser browser = sender as ChromiumWebBrowser; browser?.Dispose(); this.Dispose(); } }
void OnFrameLoadEnd(object sender, EventArgs e) { ChromiumWebBrowser browserT = sender as ChromiumWebBrowser; if (browserT.CanExecuteJavascriptInMainFrame == false) { Thread.Sleep(1000 * 30); } Task.Factory.StartNew(() => { try { ChromiumWebBrowser browser = sender as ChromiumWebBrowser; string jscript = ""; CefSharp.FrameLoadEndEventArgs p = e as CefSharp.FrameLoadEndEventArgs; if (p != null) { if ((p.Url == "https://shoppies.jp/write-item_sp")) { //browser.CanExecuteJavascriptInMainFrame //这里根据是否登录了,执行两种情况 Task <CefSharp.JavascriptResponse> task = browser.EvaluateScriptAsync("$(\"#changeLogin\").length;"); Task.WaitAll(task); if (task.Result.Result != null && Convert.ToInt32(task.Result.Result) > 0) { jscript = string.Format("$('#changeLogin').click();" + "$(\"input[name=\'loginid\']\").val(\'{0}\');" + "$(\"input[name=\'password\']\").val(\'{1}\');", Product.Username, Product.Password); browser.GetMainFrame().ExecuteJavaScriptAsync(jscript); jscript = "$(\"input[name=\'loginbtn\']\").click();"; browser.GetMainFrame().ExecuteJavaScriptAsync(jscript); } else { Execute(browser); } } if (p.Url == "https://shoppies.jp/?jb=write-item_sp") { Execute(browser); } if (p.Url == "https://shoppies.jp/write-item_conf") { Thread.Sleep(INTERVAL * 5); jscript = "$(\'.gbl-submitBtnMini\').click();"; browser.GetMainFrame().ExecuteJavaScriptAsync(jscript); } if (p.Url.EndsWith("b=write-item_end")) { string html = ""; browser.GetSourceAsync().ContinueWith(taskHtml => { html = taskHtml.Result; if (html.Contains("負荷調整") == false) { Product.UploadResult = "Success!"; } else { Product.UploadResult = "Failed!"; Product.UploadFailedReson = "上传产品时间间隔太近"; } Product.UploadDateTime = DateTime.Now; TextUtil.ArchiveProduct(Product); Thread.Sleep(INTERVAL * 1); jscript = "$(\"#prof_header > a\").last().click();"; browser.GetMainFrame().ExecuteJavaScriptAsync(jscript); Thread.Sleep(INTERVAL * 1); browser?.Dispose(); this.Close(); this.Dispose(); }); } } } catch (Exception exception) { MessageBox.Show("Error! " + exception.Message); FileLog.Error("OnFrameLoadEnd", exception, LogType.Error); } }); }