【问题标题】:Clicking on element by finding it first by column and row通过首先按列和行找到它来单击元素
【发布时间】:2023-02-03 00:19:34
【问题描述】:

我正在尝试单击表中仅由列分隔且每个列只有一行的元素。 桌子看起来像这样

我试过这样定位元素

WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, f"//div[@class='srb-ParticipantLabelCentered gl-Market_General-cn1 ' and contains(., '140.0')]/following::span[text() ='2.40']"))).click()

但不是单击包含“2.40”且位于 140.0 旁边的行,而是单击位于 131.0 旁边的第 2.40 行。 它单击与值“2.40”匹配的第一个元素。 我怎样才能让它点击 140.0 旁边的 2.40

【问题讨论】:

标签: python selenium selenium-webdriver


【解决方案1】:

您似乎有两个相似的 div 元素,它们具有相同的 class nametext 值。

如果是这样,请使用xpath 中的last() 选项来获取last one,它应该标识预期的元素。

WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, f"(//div[@class='srb-ParticipantLabelCentered gl-Market_General-cn1 ' and contains(., '140.0')])[last()]/following::span[text() ='2.40']"))).click()

这将适用于这两种情况。如果只有一个元素或多个元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多