2017-03-22 3 views
0

diesen einfachen Code Nehmen:Selen: Finden Sie die ID des Eltern eines bestimmten Artikel

<! DOCTYPE html> 
<html> 
<body> 

<div id="001"> 
    <div title="hi">hi</div> 

</div> 

</body> 
</html> 

Wie kann ich die ID „001“ durch das Wissen, mit dem Titel „hallo“ mit diesem finden:

driver.find_elements_by_xpath("//*[@title='hi']") 

ich habe dies schon gesehen: Select parent element of known element in Selenium aber es funktioniert nicht auf Python

+0

Was tun Sie bedeuten, "es funktioniert nicht auf Python"? –

+0

Haben Sie versucht, 'child_element = driver.find_elements_by_xpath (" // * [@ title = 'hi'] ")' 'und dann' parent_elem = child_element.find_elements_by_xpath ('..') 'Nun zum Abrufen der ID einfach 'parent_elem' .get_attribute ('id') ' –

+0

@JayeshDoolani ja, aber es besagt, dass * list * kein Attribut * .find_elements_by_xpath * enthält. Mein Code ist: * elem = driver.find_elements_by_xpath ("// * [@ title = '" + team +' '] ") * * padre = elem.find_elements_by_xpath (' .. ') * –

Antwort

3

Zuerst das Kind <div> Element holen, die das Attribut hat title='hi'

child_elem = driver.find_element_by_xpath("//*[@title='hi']")

dann, dass geordneten Elements holen mit dem XPath '..'

parent_elem = child_elem.find_element_by_xpath('..')

Nun, um das Attribut der holen Elternelement id, tun einfach

parent_elem.get_attribute('id')

+0

Die Antwort ist richtig, aber das eigentliche Problem war, dass ich * find_elements_by_xpath * und nicht * find_element_by_xpath *, wie Sie oben gesagt –

+0

ah, ich sehe. Froh, dass es funktioniert hat. –

+0

Sie können es einfach in einem Schuss mit dem XPath machen, '// div [@ title = 'hi']/..'. – JeffC

Verwandte Themen