python - Python Selenium:无法通过 Xpath 定位元素
问题描述
我正在尝试通过 selenium 单击保存按钮,但是,我收到无法找到元素的错误。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("xxx")
WebDriverWait(driver,10).until(EC.presence_of_element_located(driver.find_element_by_id("DivFlashViewerMain_SavePdfButtonIcon")))
driver.find_element_by_xpath('//*[@id="DivFlashViewerMain_SavePdfButtonIcon"]').click()
这是我得到的错误:
NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“id”,“selector”:“DivFlashViewerMain_SavePdfButtonIcon”}
(会话信息:chrome = 74.0.3729.169)(驱动程序信息:chromedriver = 74.0.3729.6(255758eccf3d244491b8a1317aa76e1ce10d57e9- refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17763 x86_64)
解决方案
driver.find_elements_by_css_selector('[id="DivFlashViewerMain_SavePdfButtonIcon"]')[0].click()
似乎您正在使用很多功能,例如定位 id=""。强烈建议尝试 css-selectors: How to use querySelectorAll only for elements that have a specific attribute set?
推荐阅读
- html - 将图像从另一个项目的文件夹添加到 HTML?
- python - 如何将if中创建的变量发送到python中的elif?
- sql - 基于特定列中的 DISTINCT 值创建 CASE WHEN 标签
- python - 使用 sys.path.insert 时 python 找不到 fit 文件
- python - 如何仅通过一次迭代找到链表中的四分位数
- ios - AVPlayer 不适用于 iOS 12.2,而它与带有 XCode 12.3 的 iOS 14.3 一起使用
- node.js - 在节点中创建一个 zip 文件并作为 blob 发送
- windows-services - 0x30 的 Windows 服务类型是什么意思?
- python - 使用 serverless-aws-documentation 描述 swagger-ui 的文件上传
- apache-spark - 从 pandas udf 记录