【问题标题】:Python Selenium: Printing results as [<selenium.webdriver.remote.webelement.WebElement (session="9dc768d9ede71927c1403c99c6a8005b", element="cdb6a")>]Python Selenium:将结果打印为 [<selenium.webdriver.remote.webelement.WebElement (session="9dc768d9ede71927c1403c99c6a8005b", element="cdb6a")>]
【发布时间】:2022-01-09 04:51:04
【问题描述】:

我有这行:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from chromedriver_py import binary_path
import config
import pandas as pd
from pretty_html_table import build_table
from mailjet_rest import Client
from apscheduler.schedulers.blocking import BlockingScheduler

chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(executable_path=binary_path, options=chrome_options)
driver.get('https://coinmarketcap.com/new/')

added_ago = driver.find_elements(By.XPATH, '//tbody[1]/tr[1]/td[10]')
print(added_ago)

效果很好,但我不明白发生了什么变化,现在我得到了这样奇怪的结果:

[<selenium.webdriver.remote.webelement.WebElement (session="9dc768d9ede71927c1403c99c6a8005b", element="cdb6a60e-d3dc-4f0a-9f6f-afc12b548552")>]

有什么想法吗?

【问题讨论】:

    标签: python selenium selenium-webdriver webdriver element


    【解决方案1】:

    你没看错。

    driver.find_elements() 返回一个元素列表。您正在打印元素本身,因此您看到的可能是列表中唯一的元素:

    [<selenium.webdriver.remote.webelement.WebElement (session="9dc768d9ede71927c1403c99c6a8005b", element="cdb6a60e-d3dc-4f0a-9f6f-afc12b548552")>]
    

    理想情况下,您希望在列表中看到 WebElements 的属性,例如innerText 在这种情况下,您的有效代码块将是:

    for element in driver.find_elements(By.XPATH, '//tbody[1]/tr[1]/td[10]'):
        print(element.text)
    

    【讨论】:

    • 谢谢,太好了!如果我像这样运行它,如何在单元格中找到部分文本 '//tbody[1]/tr/td[10]' 所以它将转到特定列上的所有表格行?假设我在单元格的 3 个单词中只寻找一个单词
    • @CryptoAngel 很高兴能为您提供帮助。随时根据您的新要求提出新问题。
    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2016-09-09
    • 2015-12-29
    相关资源
    最近更新 更多