2012-08-01 118 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"));