javascript - slelnium python:单击没有 id 或名称的动态对象/元素
问题描述
当执行右键单击时,会出现一个选项弹出/屏幕,它是一个动态内容/元素。
这是选项弹出窗口:
只要在屏幕上的其他位置单击鼠标,此动态内容/元素就会消失,即使它在检查元素窗口上单击,动态内容/元素也会消失
弹出窗口中几乎没有可供选择的选项,但在 html 代码中,这些选项没有名称或 ID,那么如何使用 python 从 selenium 访问/选择它们?
这是 HTML 的外观:
我打算通过使用 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()
推荐阅读
- javascript - Angular:导出类和公共类之间的区别?
- android - 如何使用 Android CameraX 自动对焦
- c++ - 如何让它运行同步?
- python - TensorFlow 算子梯度注册
- c# - 有没有办法让 XmlSerializer(或 DataContractSerializer)序列化可观察对象的属性?
- ios - 如何更改 DispatchQueue 中对象的延迟时间
- ios - 如何删除在 MapView 上所做的最后一个注释?
- python-2.7 - 在所有组中的第 3 级对 python 2.7 中的嵌套字典进行排序
- r - 在 R 中使用 data.table 生成新变量
- list - 如何对从包含异步的函数返回的值使用 List.sort?