我测试的并行执行IWebDriver
VS WebClient
。 (如果有性能迪菲昂斯和它有多大)
之前,我成功地做到这一点,我有问题,用简单的WebClient-并行调用。
看来,它并没有被执行,我也放了刹车点上AgilityPacDocExtraction
在特定行WebClient.DownloadString(URL)
但程序退出调试,而不是Step Into
可能显示yeald字符串。
该计划是具有用于需要采取的所有行动单一的方法,通过对每个动作的“模式”选择器,然后使用一个简单foreach
将迭代上所有可用的Enum values
-模式
主要exeutions:
static void Main(string[] args)
{
EnumForEach<Action>(Execute);
Task.WaitAll();
}
public static void EnumForEach<Mode>(Action<Mode> Exec)
{
foreach (Mode mode in Enum.GetValues(typeof(Mode)))
{
Mode Curr = mode;
Task.Factory.StartNew(() => Exec(Curr) );
}
}
模式/动作选择
enum Action
{
Act1, Act2
}
实际执行
static BrowsresFactory.IeEngine IeNgn = new BrowsresFactory.IeEngin();
static string
FlNm = Environment.CurrentDirectory,
URL = "",
TmpHtm ="";
static void Execute(Action Exc)
{
switch (Exc)
{
case Action.Act1:
break;
case Action.Act2:
URL = "UrlofUrChoise here...";
FlNm += "\\TempHtm.htm";
TmpHtm = IeNgn.AgilityPacDocExtraction(URL).GetElementbyId("Dv_Main").InnerHtml;
File.WriteAllText(FlNm, TmpHtm);
break;
}
}
持有类WebClient
和IWebDriver
(硒),这里不包括,所以它不会采取这个帖子一些更多的空间和allso没有相应和现在。
class BrowsresFactory
{
public class IeEngine
{
private WebClient WC = new WebClient();
private string tmpExtractedPageValue = "";
private HtmlAgilityPack.HtmlDocument retAglPacHtmDoc = new HtmlAgilityPack.HtmlDocument();
public HtmlAgilityPack.HtmlDocument AgilityPacDocExtraction(string URL)
{
WC.Encoding = Encoding.GetEncoding("UTF-8");
tmpExtractedPageValue = WC.DownloadString(URL); //<--- tried to break here
retAglPacHtmDoc.LoadHtml(tmpExtractedPageValue);
return retAglPacHtmDoc;
}
}
}
的问题是,我不能看到这应该通过从Web客户端提取的值,加上当在调试模式下我不能踏入在上面的代码注释行被alterd文件中的任何内容。 我到底做错了什么?