Селен не находит элемент по его XPath

#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, иначе он был бы показан без каких-либо проблем, но элемент существует в основном только на панели инструментов разработчика вашего браузера.