2012-08-01 4 views
1

Besoin d'aide pour l'appariement de motifs dans le sélénium. J'essaie de lire les balises div intérieures suivantes,Modèle de sélénium correspondant

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

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

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

Y at-il un moyen que je peux faire cela? Toutes les suggestions seraient très appréciées.

Vive

Répondre

3

Voici un XPath que vous pouvez utiliser pour sélectionner toutes les balises div contenant le texte « xyz ».

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

Ainsi, afin de l'utiliser, vous devriez utiliser cette ligne, ce qui crée une collection de tous les divs avec le texte « xyz »

var divElements = driver.FindElements(By.XPath("//div[contains(@class, 'xyz')]")); 
1

On dirait que votre question a déjà été répondu Get HTML Source of WebElement in Selenium WebDriver using Python Ensuite, vous pouvez analyser votre sortie.

EDIT

Pour faciliter les choses: (En utilisant Python)

Essayez:

quelqu'un
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 

Je suis sûr que Theres avec une seule ligne de code qui fait la même chose que mes 4 lignes le font mais c'est ce que j'ai pu trouver. En outre, ce code peut être changé autour assez rapidement en Java

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