请教Python+selenium如何获取元素属性值问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教Python+selenium如何获取元素属性值问题相关的知识,希望对你有一定的参考价值。

参考技术A element=driver.find_element_by_xpath("//*[@id='lobby-left-container']/div[2]/div/table/tbody/tr[1]/td[2]/div")data_id=element.get_attribute("data-id")

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

【中文标题】(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如何获取元素属性值问题的主要内容,如果未能解决你的问题,请参考以下文章

使用python处理selenium中的获取元素属性问题

Selenium2+python自动化35-获取元素属性

selenium3+python自动化14-获取元素属性

selenium3+python自动化14-获取元素属性

selenium如何获取已定位元素的属性值

基于python实现UI自动化5. selenium实现获取页面元素属性(内容标题URL浏览器名称等)