slelnium python:单击没有ID或名称的动态对象/元素

问题描述

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

这是选项弹出窗口:

enter image description here

只要鼠标点击屏幕上的其他地方,这个动态内容/元素就会消失,即使它点击了检查元素窗口,动态内容/元素也会消失

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

这是 HTML 的外观:

enter image description here

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

解决方法

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

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()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...