繁体   English   中英

Python Selenium:如何从 iframe 中的元素中提取文本?

[英]Python Selenium: How to extract text from an element within an iframe?

情况

我需要从 iframe 内的 div 元素中提取一些文本。 我有切换到 iframe 的代码,但我无法从 div 元素中获取文本。

编码

from selenium import webdriver
import pandas as pd
from selenium.webdriver.support.ui import WebDriverWait
timeout = 100
import sys
from bs4 import BeautifulSoup

driver = webdriver.Chrome('chromedriver.exe')

driver.get('https://dealers.carwow.co.uk/dealers/sign_in')

username = driver.find_element_by_id("dealer_email")
password = driver.find_element_by_id("dealer_password")

username.send_keys("email")
password.send_keys("password")

driver.find_element_by_name("commit").click()
driver.find_element_by_link_text("""View Report""").click()


try:
    driver.implicitly_wait(50)
    iframe = driver.find_element_by_css_selector('iframe')
    driver.switch_to.frame(iframe)
    table = driver.find_element_by_id('173d5612')
    table_text = table.get_attribute('innerHTML').text
    print(table_text)

except Exception as e:
    print(e)
    driver.close()
    sys.exit(0)

问题

目前它因错误而失败:“str”对象没有属性“text”到目前为止我的代码是这样的:

iframe 中的根树

iframe 中的根树

问题

我需要获取上面红色圆圈内的文本。 我怎样才能做到这一点? 为什么我收到这个错误?

提取文本:

切换到 iframe 后,您可以简单地使用 xpath 访问文本元素,如下所示

    driver.find_element_by_xpath("//div[@id='layout-grid']/table[@class='layout-grid']/div[@class='label-inner']").text

错误

您收到的错误是因为方法

.get_attribute('innerHTML')

返回一个字符串,而不是一个对象,并且Python 字符串没有

.text

硒对象具有的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM