如何在Selenium Python中通过元素的内部文本定位元素

2024-05-05 01:27:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过使用按钮的“innerText”(在我的例子中是:“Sprint 1”、“Sprint 2”和“Sprint 3”)来定位和单击按钮

以下是我的html的一部分:

<div class="show dropdown">
    <div class="dropdown-menu show">
        <a href="#" class="dropdown-item active" role="button">
            <div class="period-title">
                <span><span class="badge badge-success">active</span><span class="abc-name">Sprint 1</span></span>
            </div>
        </a>
        <a href="#" class="dropdown-item" role="button">
            <div class="period-title">
                <span><span class="badge badge-info">future</span><span class="abc-name">Sprint 2</span></span>
            </div>
        </a>
        <a href="#" class="dropdown-item" role="button">
            <div class="period-title">
                <span><span class="badge badge-info">future</span><span class="abc-name">Sprint 3</span></span>
            </div>
        </a>
    </div>
</div>

这是我失败的尝试之一:(错误消息:“……不是有效的XPath表达式)

driver.find_elements_by_xpath("//span[contains(text(), 'Sprint 1'")

Tags: namebadgedivtitlebuttonitem按钮class
2条回答

要单击动态元素,您需要归纳WebDriverWait()并等待element_to_be_clickable()和下面的xpath

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//span[text()='Sprint 1']"))).click()

您需要导入以下库

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

由于语法错误,它失败了

试试这个:

//span[contains(.,'Sprint 1')]

//span/text()[contains(.,'Sprint 1')]

谢谢

相关问题 更多 >