如果所需的文本也在单元格中,则尝试 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")
所以我有一个包含文本和 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")