繁体   English   中英

使用 selenium 从按钮中提取文本

[英]Extracting text from button with selenium

我正在尝试使用 selenium 来提取按钮上的文本,但 python 只返回None

我使用button = browser.find_element_by_xpath("/html/body/div[3]/main/div[3]/div[3]/div/div/div/div/div/button")得到了按钮

text = button.get_attribute('text') (当使用 .click() 时按钮工作得很好)

这是按钮代码:

<button class=" btn  btn-primary stepbuttonnew" onclick="if (!window.__cfRLUnblockHandlers) return false; ok.performClick();gtag('config', 'UA-113527404-1', {'page_path': '/smth'});">
Text i want
</button>

它应该返回“我想要的文本”

任何帮助表示赞赏:)

你可以发布页面吗? 我建议尝试:

text = driver.find_element_by_xpath('XPATH').text
print(text)

如果 xpath 不起作用,也许可以测试find_element_by_class_name

按钮元素的text属性将返回文本。

button = browser.find_element_by_xpath("/html/body/div[3]/main/div[3]/div[3]/div/div/div/div/div/button")
buttonText = button.text

如果通常的 selenium 不起作用那么我相信 JavaScript 执行器将能够帮助您检索到所需的值。 如果您对此没有先验知识,那么我建议您检查一下。

`使用 innerText 属性? 很多时候纯文本在 Angular/React ui 应用程序中读取 null,您应该能够使用 innerText 属性获取它,即 text = button.get_attribute('innertext')

我正在尝试使用 selenium 提取按钮上的文本,但 python 只返回None

我使用button = browser.find_element_by_xpath("/html/body/div[3]/main/div[3]/div[3]/div/div/div/div/div/button")得到了按钮

text = button.get_attribute('text') (使用.click() 时按钮工作得很好)

这是按钮代码:

<button class=" btn  btn-primary stepbuttonnew" onclick="if (!window.__cfRLUnblockHandlers) return false; ok.performClick();gtag('config', 'UA-113527404-1', {'page_path': '/smth'});">
Text i want
</button>

它应该返回“我想要的文本”

任何帮助表示赞赏:)

对于从 Python 中的按钮抓取文本,您可以协调 ProxyCrawl API( https://pypi.org/project/proxycrawl/ ),它足以适应您当前的 Python 代码库。 API 现在已经生效,并且现在被信息工程师使用,因为它们提供了更熟练、更安全、更高效的信息抓取,并且如各种页面的动态所示是完全通用的。 此外,我们可以通过 CSS 选择器、XPath 和 Class 名称获取按钮文本。 除此之外,您还可以使用随附的代码使用 Python Selenium 抓取数据。

源代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import time

driver = webdriver.Chrome()
wait = WebDriverWait(driver,30)
driver.get("https://www.decoin.io/en/")
driver.maximize_window()
text = wait.until(EC.visibility_of_element_located((By.XPATH,'/html/body/section[1]/div/div[2]/a[1]/button'))).text
print(text)

暂无
暂无

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

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