2012-08-01 120 views
1

在Selenium中需要一些模式匹配的幫助。我試圖閱讀以下內部的div標籤,硒模式匹配

<div> 
    <div class="xyz one"></div> 

    <div class="xyz two"></div> 

    <div class="xyz three"></div> 
</div> 

有沒有辦法我可以做到這一點?任何建議將不勝感激。

乾杯

回答

3

這裏有一個XPath,你可以使用以便選擇包含文本「XYZ」的所有div標籤。

"//div[contains(@class, 'xyz')]" 

所以爲了利用這一點,你會使用這條線,這與文本「XYZ」

var divElements = driver.FindElements(By.XPath("//div[contains(@class, 'xyz')]")); 
創建所有的div的集合
1

看起來像你的問題已經回答 Get HTML Source of WebElement in Selenium WebDriver using Python 然後你可以分析你的產出。

編輯

爲了讓事情變得更容易:(使用Python)

嘗試:

class_list = [] 
my_divs = driver.find_elements_by_css_selector(div[class*=xyz]) 
for div in my_divs: 
    outerHTML = div.get_attribute("outerHTML") 
    classpos = outerHTML.find('class=') #find where our class identifier begins 
    quote_begin = outerHTML.find('"',classpos) 
    quote_end = outerHTML.find('"', quote_begin+1) 
    our_class = outerHTML[classpos:quote_end+1] #get the entire class identifier 
    class_list.append(our_class) 
    print our_class 

我敢肯定,那裏有某人的代碼一個襯墊,做同樣的事情我的4條線就是這樣,但這是我能想到的。此外,該代碼可以很快改變周圍成Java

2
IWebDriver driver = new FirefoxDriver(); 
driver.FindElement(By.CssSelector("div.xyz"));