【问题标题】:Find div id of an innerHTML text in Python Selenium在 Python Selenium 中查找 innerHTML 文本的 div id
【发布时间】:2022-01-21 05:16:18
【问题描述】:

很抱歉,如果有人问过这个问题,但我一直在努力寻找解决我的问题的方法,但我找不到任何答案。我正在 Selenium 中进行一些测试,并尝试在平台上自动执行一些操作。

诀窍是我希望从下拉列表中单击一些元素。所有元素看起来像下面的代码:

<div class="tag" id="ATagBox02#QUK#4761"><div class="ellipsis" style="padding-right: 2px; float: left;">EXAMPLE</div></div>

如果我运行如下代码或类似代码:

driver.find_elements_by_xpath("//*[contains(text(), '%s')]" % value).click()

其中“value”是我要选择的元素,我知道该元素不可点击。

我想要解决这个问题是找到元素文本的div id,它是可点击的。然后将 div id 存储在一个变量中,并使用如下所示的行来点击它:

driver.find_element_by_id("%s" % ID).click()

这样 Python 就会明白:

driver.find_element_by_id("ATagBox02#QUK#4761").click()

我不知道如何搜索特定 innerHTML 文本的 div id。我如何告诉 Python 确定“ATagBox02#QUK#4761”是元素“EXAMPLE”的 id?

提前谢谢你!

【问题讨论】:

  • 点击下拉元素,然后点击要弹出的元素,避免不可交互。

标签: python html selenium innerhtml


【解决方案1】:

通过文本定位WebElement,然后找到父DIVid并通过id点击元素 您可以使用以下解决方案:

value = 'EXAMPLE'
element_id = driver.find_element_by_xpath("//*[contains(text(), '%s')]//ancestor::div[1]" % value).get_attribute("id")
driver.find_element_by_id(f"{element_id}").click()

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多