2016-09-30 16 views

回答

0

是的,我爲這個問題寫了代碼。

我的情況是:我需要檢查位於頁面某處的元素,但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。你可以離開這當然。

相關問題