Python Selenium:无法通过Xpath定位元素

2024-10-03 15:30:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过selenium单击一个save按钮,但是,我得到一个错误,它无法定位元素。你知道吗

this is the html part of the website

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: no such element: Unable to locate element: {"method":"id","selector":"DivFlashViewerMain_SavePdfButtonIcon"}
(Session info: chrome=74.0.3729.169) (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17763 x86_64)


Tags: ofthefromimportidsupportdriverselenium
2条回答

你应该使用element_to_be_clickable,而不仅仅是presence_of_element_located。你知道吗

应该是这样的:

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

driver = webdriver.Chrome()
driver.get("xxx")

button = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID, "DivFlashViewerMain_SavePdfButtonIcon")))
button.click()

希望这有帮助!你知道吗

driver.find_elements_by_css_selector('[id="DivFlashViewerMain_SavePdfButtonIcon"]')[0].click()

似乎您使用了很多函数,例如查找 id="". Highly recommend trying css-selectors: ^{a1}

相关问题 更多 >