1
我的擔心是,是否可以通過選擇元素來動態生成XPath,以便我不必擔心定期爲HTML網站發生的更新。 請隨時留下任何可以作爲此問題替代方案的想法,我不必每次都手動生成XPath。是否可以編寫一個可以爲特定元素提供XPath的代碼?
我的擔心是,是否可以通過選擇元素來動態生成XPath,以便我不必擔心定期爲HTML網站發生的更新。 請隨時留下任何可以作爲此問題替代方案的想法,我不必每次都手動生成XPath。是否可以編寫一個可以爲特定元素提供XPath的代碼?
是的,我爲這個問題寫了代碼。
我的情況是:我需要檢查位於頁面某處的元素,但XPath會不時更改。由於所有元素都在表格中,所以我只需要知道第一個元素的XPath,然後檢查其他每一行以查看是否存在其他元素。
我只有在這段代碼中使用
public void UserGetsXPathOfElement(string element){
string PageSource = Driver.PageSource;
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(PageSource);
var decs = doc.DocumentNode.Descendants().ToList();
var targetEl = decs.FirstOrDefault(c => c.InnerText.Trim() == element && c.Name == "td");
var newXpath = targetEl.XPath;
var regex = new Regex(@"tr\[\d+\]");
newXpath = regex.Replace(newXpath, @"tr[{0}]");
ScenarioContext.Current["xpath"] = newXpath;
}
,我在ScenarioContext發送變量的XPath變種,我也修剪我的XPath來,直到TD。你可以離開這當然。