有一个带有下拉按钮的网页,里面有文字。我想从该下拉按钮检索文本,即:“说明文本”。
下面是html代码部分:
<div data-v-e0a13c66="" data-v-5e9bf2df="" id="DetailDescription" class="detail-dropdown">
<header data-v-e0a13c66="" class="detail-dropdown__header">
<h5 data-v-e0a13c66="" class="detail-dropdown__title detail-dropdown__title--open">Описание</h5>
<svg data-v-e0a13c66="" width="8" height="14"
xmlns="http://www.w3.org/2000/svg" class="detail-dropdown__arrow--open detail-dropdown__arrow">
<path data-v-e0a13c66="" d="M5.38 6.978c-.03-.02-.065-.036-.09-.06A10051.03 10051.03 0 0 1 .544 2.17C.202 1.83.154 1.335.424.962A.916.916 0 0 1 1.765.807c.032.027.061.057.091.087l5.42 5.42c.41.41.41.96 0 1.37L1.831 13.13c-.401.4-1.018.38-1.373-.046a.918.918 0 0 1 0-1.164c.033-.04.07-.078.108-.115L5.29 7.08c.025-.025.06-.04.09-.06v-.043Z"></path>
</svg>
</header>
<div data-v-e0a13c66="" class="detail-dropdown__body">
<article data-v-37bed4a0="" data-v-e0a13c66="" itemprop="description" class="detail-desc">
<p data-v-37bed4a0="" class="detail-desc__text detail-desc__text--main">
<p>Description text.</p> <!----> <!----></article>
</div>
</div>
字符串
当我运行这段代码时:
from selenium import webdriver
from selenium.webdriver.common.by import By
def web_driver():
options = webdriver.ChromeOptions()
options.add_argument("--verbose")
options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument("--window-size=1920, 1200")
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=options)
return driver
description_tags = driver.find_elements(By.XPATH, "//*[@*[contains(., 'detail-dropdown_body')]]")
list(map(lambda x: x.text, description_tags))
型
但输出为空。我怎么能修好呢?
2条答案
按热度按时间35g0bw711#
要通过XPATH获取元素,应该使用
字符串
xpath中的
.
文本包含对文本的搜索,但实际上你需要搜索class
,所以你应该使用.
。flseospp2#
要提取文本 Description text. 理想情况下,您需要为visibility_of_element_located()引入WebDriverWait,您可以使用以下locator strategies之一:
字符串
get_attribute("innerHTML")
:型
*注意:需要添加以下导入:
型
您可以在How to retrieve the text of a WebElement using Selenium - Python中找到相关讨论
引用
链接到有用的文档:
get_attribute()
方法Gets the given attribute or property of the element.
text
属性返回The text of the element.