#java #selenium #facebook #selenium-webdriver
Вопрос:
Пытаетесь загрузить какое-то изображение с Facebook с помощью XPath, без лаки, каким-либо другим способом это сделать?
Ява:
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]"}
Комментарии:
1. Вы получаете эту ошибку, потому что элемент не существует. Тот факт, что он существовал при открытии панели инструментов разработчика в chrome, не означает, что он существует при загрузке страницы в Selenium.
2. @WizKid Увидимся после долгого времени. Кстати, с каких это пор Facebook разрешил соскабливать как законное?
3. @DebanjanB, если это не незаконно, то законно.
4. @JamesB Не видел лучших TOS с тех пор, как FB превратился в Мета(стих), ожидая услышать из уст лошади 😉
5. Я никогда не говорил, что это законно или незаконно. Я сказал, что это противоречит Условиям предоставления услуг Facebook, и поэтому вы рискуете быть забаненным.
Ответ №1:
Я думаю, ты что-то путаешь. Элемент на самом деле не выходит на странице, которую вы загружаете в selenium, иначе он был бы показан без каких-либо проблем, но элемент существует в основном только на панели инструментов разработчика вашего браузера.