在 Python Selenium 中查找 innerHTML 文本的 div id
Posted
技术标签:
【中文标题】在 Python Selenium 中查找 innerHTML 文本的 div id【英文标题】:Find div id of an innerHTML text in Python Selenium 【发布时间】: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?
提前谢谢你!
【问题讨论】:
点击下拉元素,然后点击要弹出的元素,避免不可交互。 【参考方案1】:通过文本定位WebElement,然后找到父DIV的id
并通过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()
【讨论】:
以上是关于在 Python Selenium 中查找 innerHTML 文本的 div id的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Selenium 和 Python 中使用类型查找元素
在标题中动态查找元素,然后单击它们以在python selenium中进行验证
在 Python Selenium 中查找 innerHTML 文本的 div id