2016-04-13 40 views
5

öğelerinde yineleme yaparken yinelenmiyor, beni çıldırtan kodun bu bölümüne sahibim.
HTML'den alınan öğeler üzerinde yineliyorum.
structureElement öğesi ince bir öğe gibi görünüyor, ancak .FindElement() öğesini çalıştırdığımda, her zaman ilk yinelemeden değer döndürür. NİYE YA? grrrrrrrr
İşte benim kod: Eğer demektir Xpath, içinde // kullanarak çünkü varFindElement, IReadOnlyCollection

IReadOnlyCollection<IWebElement> structureElements = 
    driver.FindElements(By.XPath(".//div[contains(@id, 'PSBTree_x-auto-')]")); 
//.Where(sE => sE.FindElement(By.XPath("//img[@title]")).GetAttribute("title") != "Customer Item") 
IWebElement tmp; 
foreach (IWebElement structureElement in structureElements) 
{ 
    //if (structureElement.FindElement(By.XPath("//span//img[@title]")).GetAttribute("title").Contains("Customer Item")) 
    // continue; 
    tmp = structureElement.FindElement(By.XPath("//span[@class='cat-icons-tree']/img")); 
    ReportProgress(progress, ref r, ct, allsteps, message + tmp.GetCssValue("background")); 
    Thread.Sleep(100); 
    ReportProgress(progress, ref r, ct, allsteps, message + structureElement.Text); 
    Thread.Sleep(300); 
} 

cevap

3

, "soyundan kökü ait select", yüzden öncelikle belgede bulur döndürüyor

o düğümün soyundan bulmak istiyorsanız

, denemek isteyebilirsiniz:

.//span[@class='cat-icons-tree']/img 

.// Sen eksenleri here

+0

Aman, teşekkürler tüm kısaltmalar kontrol edebilirsiniz

"bağlam düğümün seçme soyundan" anlamına gelir. Körüm oO –