ajax - 为什么打印 Xpath 而不是元素内的文本?
问题描述
我正在尝试在以下网址上抓取昨天足球比赛的比赛统计数据:
https://www.flashscore.com/match/8S0QVm38/#match-statistics;0
我已经编写了代码,只是为了让 Webdriver 选择我想要的统计数据并为我打印它们,这样我就可以看到我想要使用什么。我的代码是:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Firefox()
browser.get("https://www.flashscore.com/match/8S0QVm38/#match-statistics;0")
print(browser.find_elements_by_class_name("statText--homeValue"))
打印出一个元素列表,老实说,我不知道这是否是我正在寻找的,因为返回的内容没有显示任何可以识别我在开发人员工具中查看的内容。
我正在尝试获取统计数据下的所有数字,例如 Possession 和对目标的射门,但 print 返回一个这样的 xpath 列表,其中会话相同但元素始终不同:
[<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="da88ca87-e318-934e-ba75-dca1d652cd37", element="c53f5f3e-2c89-b34c-a639-ab50fbbf0c33")>,
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="da88ca87-e318-934e-ba75-dca1d652cd37", element="3e422b45-e26d-de44-8994-5f9788462ec4")>,
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="da88ca87-e318-934e-ba75-dca1d652cd37", element="9e110a54-4ecb-fb4b-9d8f-ccd1b210409d")>, <
任何人都知道这是为什么以及我可以做些什么来获得实际数字?
解决方案
您得到的不是 XPath,而是 WebElement 对象的列表。从每次尝试中获取文本
print([node.text for node in browser.find_elements_by_class_name("statText--homeValue")])
推荐阅读
- android - android AppBarLayout 和 BottomNavigationView 高程不适用于较深的颜色
- javascript - 单击多个单选按钮问题的选择器
- ecmascript-6 - 节点控制台中的es6导入语法不起作用
- reactjs - React Router 不会在附加事件处理程序的情况下实际发送到我的 url
- linux - 使用 MonoDevelop 使用 gtk# 2.0 构建 linux 应用程序
- javascript - 复选框检查断言不通过
- google-sheets - Google 表格 IMPORTXML getRange 和 setRange 错误的“值”
- android - 允许 AndroidX EditTextPreference 只接受字母
- python - 将数据库列转换为动态添加字符的字符串
- java - 在 Java Bean Validator 中使用类参数