如果所需的文本也在单元格中,则尝试 select link 单元格中的文本 table

Trying to select link text within a table cell if the desired text is also within the cell

所以我有一个包含文本和 link 的 table 单元格。现在此 table 中的每一行都有相同的文本 link hyperlink 标题“[Details]”,但位置会根据您所在的行而改变。

例如,单元格将如下所示:"Text I Want" [详细信息]

我希望能够根据该单元格中的文本内容转到正确的 link,但在弄清楚如何在 Python 中对其进行编码时遇到了一些问题。单击此 table 中的一行后,它会移动它在 table 中的位置,因此无法使用 Xpath。

这是我试过的方法:


MyText = driver.find_element_by_xpath("//span[text()='My Desired Text']")
MyText.find_element_by_partial_link_text("Details").click()



def click_me(myString):
    WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, "//td/span[.='" + myString + "']//following::span[2]"))).click()

click_me("My Desired Text")

但我认为我需要使用 if 语句才能实际获得所需的结果。如有任何建议,我们将不胜感激。


<td>
                            <span>My Desired Text</span>
                            <span class="HSpacer10"></span>
                            <span class="commonLink" onclick="handleMyEvents(EVENT_EDIT_PKG, 60000,1);">[Details]</span>


                        </td>

由于 table 由多个文本组成,并且关联的 link 具有与 Details 相同的文本,因此您可以编写如下方法:

def click_me(myString):
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td/span[.='" + myString + "']//following::span[2]"))).click()

现在您可以使用任何所需的文本调用此方法以单击关联的 link:

click_me("My Desired Text")
# or
click_me("My Text")
# or
click_me("Text")