使用Python Selenium查找span标记的兄弟/父标记



这是我的第一个问题,所以如果我错过了一些信息或做错了什么,我已经为此道歉了。我正在用ChromeDriver浏览互联网。使用的语言是Python和Selenium的结合。

我有一个元素,它是一个span标记,我存储在一个名为elem的变量中。我可以找到elem的父元素

articles.append(elem.find_parent("a")['href'])

存储在文章的数组中。现在我需要找到祖先元素,它是带有类"的span标记;价格":最下面的一行表示elem,第二行是我要查找的元素。

然而,像以前一样尝试:

elem.find_parent("span")['class']

不适用于我,我得到了一个非类型错误。我尝试了多种其他方法,但总是出现NoneType错误。

提前谢谢。

父元素

父节点选择当前节点的父节点。

让我们以Stackoverflow用户配置文件中的信誉span元素为例:要使用XPATH升级一级:

//span[@class='grid--cell ']

解决方案1

使用/..可以更上一层楼

//span[@class='grid--cell ']/..

解决方案2

使用XPATHparent:

//span[@class='grid--cell ']/parent::div[@class='grid gs8 fs-headline1']

parent选择当前节点的父节点

解决方案3

使用XPATHancestor

//span[@class='grid--cell ']/ancestor::div[@class='grid gs8 fs-headline1']

不同之处在于ancestor不仅选择当前元素的父元素,还选择当前元素中的祖父母等等。

目前没有一个好的方法可以用CSS做同样的事情。

要查找子元素,我通常将//用于所有同级元素,或将/用于直接同级元素。

from selenium import webdriver
driver = webdriver.Chrome(executable_path="
C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#identify child element
l= driver.find_element_by_xpath("//li[@class='heading']")
#identify parent from child element with (..) in xpath
t= l.find_element_by_xpath("..")
# get_attribute() method to obtain class of parent
print("Parent class attribute: " + t.get_attribute("class"))
driver.close()

来自的解决方案https://www.tutorialspoint.com/how-to-find-parent-elements-by-python-webdriver

相关内容

  • 没有找到相关文章

最新更新