首页 > 解决方案 > slelnium python:单击没有 id 或名称的动态对象/元素

问题描述

当执行右键单击时,会出现一个选项弹出/屏幕,它是一个动态内容/元素。

这是选项弹出窗口:

在此处输入图像描述

只要在屏幕上的其他位置单击鼠标,此动态内容/元素就会消失,即使它在检查元素窗口上单击,动态内容/元素也会消失

弹出窗口中几乎没有可供选择的选项,但在 html 代码中,这些选项没有名称或 ID,那么如何使用 python 从 selenium 访问/选择它们?

这是 HTML 的外观:

在此处输入图像描述

我打算通过使用 selenium 发送右键单击来选择选项 HMH NC,然后选择该选项,但由于选项没有名称或 ID,我可以弄清楚如何做

标签: javascriptpythonseleniumselenium-webdriverweb-inspector

解决方案


您必须通过文本搜索它。我会做这样的事情(未经测试的代码):

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By    

item_labels = WebDriverWait(my_driver,5).until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, "div.item span.label")),
    message="failed to find any menu items")

target = None
for item in item_labels:
    if item.get_attribute("text") == target_value:
        target = item
        break
target.click()

推荐阅读