【问题标题】:Selenium does not find element by it's xPathSelenium 没有通过它的 xPath 找到元素
【发布时间】:2025-12-28 08:55:10
【问题描述】:

试图通过其 xPath 从 Facebook 上传一些图像,但运气不好,还有其他方法吗?

Java:

var xPathContato = "//*[@id=\"mount_0_0_lv\"]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div/div/div[4]/div/div/div/div/div/div/div/div/div[3]";
WebElement wb = webDriver.findElement(By.xpath(xPathContato));

String image = wb.getAttribute("src");
 
URL imageURL = new URL(image );
BufferedImage saveImage = ImageIO.read(imageURL);
 
ImageIO.write(saveImage, "png", new File("facebook-img"));

错误:

Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="mount_0_0_lv"]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div/div/div[4]/div/div/div/div/div/div/div/div/div[3]"}

【问题讨论】:

  • 您收到该错误是因为该元素不存在。仅仅因为当你在 chrome 中打开开发者工具栏时它就存在,并不意味着当你在 Selenium 中加载页面时它就存在。
  • @WizKid 好久不见。顺便说一句,Facebook 从什么时候开始允许抓取合法的?
  • @DebanjanB 如果不是非法的,就是合法的。
  • @JamesB 自从 FB 转为 Meta(verse) 以来,还没有看到更精细的 ToS,等待从马嘴里听到;)
  • 我从未说过这是合法或非法的。我说这违反了 Facebook 服务条款,因此你有被禁止的风险。

标签: java selenium facebook selenium-webdriver


【解决方案1】:

我认为你在混淆一些东西。该元素并没有真正退出您正在上传到 selenium 的页面中,否则它会显示没有任何问题,但该元素基本上只存在于您浏览器的开发人员工具栏中。

【讨论】:

    最近更新 更多