我正在尝试使用 selenium webdriver python 编写脚本。 当我尝试做
find_element_by_xpath("//*[@id='posted_1']/div[3]")
它说
NoElementFoundException.
有人可以帮我吗?
问候 巴拉
最佳答案
如果您收到 NoSuchElementException
作为您提供的异常,可能有以下原因:-
可能您正在使用不正确的定位器进行定位,因此您需要共享 HTML 以获得更好的定位器解决方案。
可能当您要查找元素时,它不会出现在
DOM
上,因此您应该实现WebDriverWait
来等待元素可见为下面:-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 wait = WebDriverWait(driver, 10) element = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='posted_1']/div[3]")))
此元素可能位于任何
frame
或iframe
内。如果是,您需要在找到元素之前切换frame
或iframe
,如下所示:-driver.switch_to_frame("frame/iframe I'd or name") wait = WebDriverWait(driver, 10) element = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='posted_1']/div[3]"))) #Once all your stuff done with this frame need to switch back to default driver.switch_to_default_content();
关于python - Selenium webdriver python 通过 xpath 查找元素 - 找不到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39134440/