![](/img/trans.png)
[英]How to extract the text within the element using Selenium WebDriver and Python?
[英]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 后,您可以简单地使用 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.