(PYTHON) 如何获取子元素 (Selenium)

Posted

技术标签:

【中文标题】(PYTHON) 如何获取子元素 (Selenium)【英文标题】:(PYTHON) How to get sub elements (Selenium) 【发布时间】:2017-08-22 20:15:30 【问题描述】:

所以我真的是 python 新手,我想在一个名为 roblox 的网站上结交一些朋友,以便学习。这是我的代码现在所在的位置:

 from selenium import webdriver
 ff = webdriver.FireFox()
 ff.get("https://www.roblox.com/home")
 element = driver.find_element_by_class("col-xs-12 section home-friends"[0])

where I am currently

我想获取文本“Friends (2)”

有什么办法吗?

【问题讨论】:

【参考方案1】:

你需要的是:

    text = driver.find_element_by_class("col-xs-12 section home-friends")
.find_element_by_tag_name("h3").text

如果超过 1 ,可以先找到 class= "container-header" 的元素:

    text = driver.find_element_by_class("col-xs-12 section home-friends")
.find_element_by_class_name("container-header").find_element_by_tag_name("h3").text

【讨论】:

from selenium import webdriver ff = webdriver.Firefox() ff.get("roblox.com/home") element = ff.find_element_by_class_name("col-xs-12 section home-friends"[0])。 find_element_by_class_name("container-header"[0]).find_element_by_tag_name("h3").text print (element) input("hi") 你是这样做的吗? 首先,在 find_element_by_class_name("container-head‌​er"[0]) - 不应该有 [0]。其次,确保您已登录网站 问题和答案都有2个问题:1)selenium中没有方法find_element_by_class(),2)find_element_by_class_name()中不能使用复合类名【参考方案2】:

您不能将复合类名称与 find_element_by_class_name() 一起使用(不仅仅是 ..by_class() 而是 ..by_class_name() !),但您仍然可以使用它在CSS 选择器中,比如

ff.find_element_by_css_selector(".col-xs-12.section.home-friends")`

如果需要解压"Friends (2)",试试:

elem_text = ff.find_element_by_css_selector("div.col-xs-12.section.home-friends h3").text

【讨论】:

好的,我应该使用什么版本的python? 这并不重要:selenium 支持最新的Python 2.XPython 3.X 版本 from selenium import webdriver ff = webdriver.Firefox() ff.get("roblox.com/home") element = ff.find_element_by_css_selector("div.col- xs-12.section.home-朋友 h3").text print (element) input("hi") 还是会报错:gyazo.com/8d12a2b204091e86e999a9a37e96039a 您没有获得所需的值? 添加了问题图片

以上是关于(PYTHON) 如何获取子元素 (Selenium)的主要内容,如果未能解决你的问题,请参考以下文章

seleniu 元素定位与操作

如何检查网页元素是不是可见

PYTHON,SELENIUM如何获取HTML内元素,

vue学习--父元素如何获取子元素的值,子元素如何获取父元素的值

python - 获取html标签内的所有子元素

DOM中如何获取一个元素的子元素?