python - Selenium webdriver python 通过 xpath 查找元素 - 找不到元素

标签 python selenium selenium-webdriver

我正在尝试使用 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]")))
    
  • 此元素可能位于任何 frameiframe 内。如果是,您需要在找到元素之前切换 frameiframe ,如下所示:-

    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/

相关文章:

testing - 在机器人框架中以毫秒为单位获取时间的关键字是什么?

java - 通过 Selenium 和 Java 使用 CssSelector 识别新添加的元素

selenium - Protractor 错误 - 无法启动 WebDriver session

java - 关闭随机 'PopUps'

selenium - 如何使用 Java 检查 Selenium Webdriver 中的一个元素是否存在于另一个元素内?

python - anaconda3导入错误: DLL load failed: The specified module could not be found

python - 无返回值

python - 如何加入字符串列表并删除重复的字母(使它们保持链接状态)

python - 无法将 send_keys 发送到工具提示所覆盖的网络元素

python - 如何在 python 记录器中指定调用者文件名