Selenium Webdriverを使用してテーブルの行を繰り返し、行ごとにクラスTのインスタンスを作成し、行のデータに基づいてオブジェクトにプロパティを設定しています。
public override void RefreshElements()
{
base.RefreshElements();
var browseTableRows = Driver.FindElements(By.CssSelector("table.browse>tbody>tr"));
ItemsList = new List<T>(browseTableRows.Count);
ItemsById = new Dictionary<int, T>(browseTableRows.Count);
foreach (var tr in browseTableRows) {
T item = new T() {
ID = int.Parse(tr.FindElement(By.XPath("td[2]")).Text),
Name = tr.FindElement(By.XPath("td[3]")).Text,
Description = tr.FindElement(By.XPath("td[4]")).Text
};
ItemsList.Add(item);
ItemsById.Add(item.ID, item);
}
}
このコードはかなり遅いです。このコードを高速化する方法について何か提案はありますか?
明確にするために、クラスTは複雑なことは何もしません。
public class T
{
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
便利な場合は、Seleniumのバージョン2.29.1、.NET 4.0を使用しており、InternetExplorerドライバーを実行しています。