有什么办法可以通过子元素来定位元素吗?

时间:2020-03-20 14:17:29

标签: python python-3.x selenium xpath

我试图找到一个与其他元素没有什么不同的元素,但是它的子元素与类中的其他元素有所不同。HTML:

<div class="grid x4" id="grid">
    <div><span class="fa fa-book" style="display: none;"></span></div> #⬅for example this element
    <div><span class="fa fa-birthday-cake" style="display: none;"></span></div>
    <div><span class="fa fa-bolt" style="display: none;"></span></div>
    <div><span class="fa fa-cube" style="display: none;"></span></div>
    <div><span class="fa fa-coffee" style="display: none;"></span></div>
    <div><span class="fa fa-car" style="display: none;"></span></div>
    <div><span class="fa fa-birthday-cake" style="display: none;"></span></div>
    <div><span class="fa fa-book" style="display: none;"></span></div>
    <div><span class="fa fa-cube" style="display: none;"></span></div>
    <div><span class="fa fa-bomb" style="display: none;"></span></div>
    <div><span class="fa fa-car" style="display: none;"></span></div>
    <div><span class="fa fa-bomb" style="display: none;"></span></div>
    <div><span class="fa fa-cubes" style="display: none;"></span></div>
    <div><span class="fa fa-coffee" style="display: none;"></span></div>
    <div><span class="fa fa-cubes" style="display: none;"></span></div>
    <div><span class="fa fa-bolt" style="display: none;"></span></div>
</div>

看看the website可能会有所帮助。以下代码可以找到子元素,但是仍然可以找到元素(不是子元素)?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox()
browser.get('http://zzzscore.com/memory/')
elements = browser.find_elements_by_xpath('//span[@class= "fa fa-book"]')

1 个答案:

答案 0 :(得分:1)

是的,您选择了具有xpath的父母 在这种情况下,当您知道父标记是div时,请使用以下代码:

elements = browser.find_elements_by_xpath('//span[@class= "fa fa-book"]/parent::div')

如果您不知道确切的父级,则可以用*替换标签名