我知道我可以搜索proccessId /運行任務的名稱並殺死我需要的進程。winform關閉自我加上另一個WebBrowserControl
雖然到現在我沒有開發schedualed任務/自executble應用,
,所以我並不需要知道如何讓應用程序後execition
試圖關閉一切(關閉本身包括WebDriver)通過Application.Exit
+或this.Close()
後,我有我想要的。任務完成 。 請關閉...沒有更多的工作給你。 但先生。 Program.cs仍然需要來自Form1的東西。 說一些關於 無法訪問處置的對象。 對象名稱:'Form1'。
即使任務完成,兩者的任意組合都在某個點返回一個豁免錯誤 (來自program.cs)。沒有更多的代碼被請求。(?)由我..至少。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
using System.IO;
namespace HT_R_WbBrows2
{
public partial class Form1 : Form
{
public IeEnginGenerator Iengn = new IeEnginGenerator();
public Form1()
{
InitializeComponent();
//setLogView(View.Details);
string extractededVal = Iengn.ExtractPageValue(Iengn.itrfWebEng);
string flnm = @" the directory path to file --> \dolarRate.asp";
File.WriteAllText(fn, extractededVal);
this.Close();
Application.Exit();
}
public class IeEnginGenerator
{
private string directory = Environment.CurrentDirectory;///Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
public IWebDriver IwebEngine;
public List<string> ListElementsInnerHtml = new List<string>();
public HtmlAgilityPack.HtmlDocument Dnetdoc = new HtmlAgilityPack.HtmlDocument();
#region <<=========== setupDriver ============>>
public string ExtractPageValue(IWebDriver DDriver, string url="")
{
if(string.IsNullOrEmpty(url))
url = @"http://www.boi.org.il/he/Markets/ExchangeRates/Pages/Default.aspx";
var service = InternetExplorerDriverService.CreateDefaultService(directory);
service.LogFile = directory + @"\seleniumlog.txt";
service.LoggingLevel = InternetExplorerDriverLogLevel.Trace;
var options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
DDriver = new InternetExplorerDriver(service, options, TimeSpan.FromSeconds(60));
DDriver.Navigate().GoToUrl(url);
Dnetdoc.LoadHtml(DDriver.PageSource);
string Target = Dnetdoc.DocumentNode.SelectNodes("//table//tr")[1].ChildNodes[7].InnerText;
//.Select(tr => tr.Elements("td").Select(td => td.InnerText).ToList())
//.ToList();
return Math.Round(Convert.ToDouble(Target), 2).ToString();
//return "";//Math.Round(Convert.ToDouble(TempTxt.Split(' ')[10]),2).ToString();
}
#endregion
}
}
}
在窗體構造函數中調用Close()是自殺。它會炸彈,因爲Program.cs中的Main()方法使用封閉的形式調用Application.Run()。代碼沒什麼意義,你需要重新考慮這個。 –