Как найти элемент даты рождения в Facebook с помощью Selenium? - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь извлечь дату рождения с помощью Selenium (java & chrome) из страницы «about» в профиле Facebook. Как мне это сделать?

На вкладке «о» на Facebook есть элемент, который содержит дату рождения человека (если она раскрыта). Я действительно хотел бы иметь это как Струну. Пример здесь: https://www.facebook.com/zuck/about?lst=100002006436635%3A4%3A1570508289

Я пробовал driver.findElementByXPath и driver.findElementByClassName, а также PartialLinkText. Я делал это раньше в другом месте, и это работало, может быть, я просто делаю что-то не так здесь.

Код XPath, который я пробовал, здесь:

.findElementByXPath("//*[@class='_4bl9 _2pis _2dbl']");

.findElementByXPath("//*[contains(text(), 'birthdate')]");

Пожалуйста, руководствокак мне найти этот элемент или извлечь дату рождения

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Можете ли вы попробовать следующий xpath:

.//*[text()='Birthday']/parent::div/following-sibling::div

Ниже приведен HTML-код, который я скопировал из ссылки, которой вы поделились

<span class="_c24 _2ieq">
    <div>
        <span class="accessible_elem">Birthday</span>
    </div>
    <div>May 14, 1984</div>
</span>

Объяснение:

.//*[text()='Birthday']найдет промежуток дня рождения

/parent::div найдет родительский div

following-sibling::div найдет div, который содержит DOB

, затем вы можете получить строковое значение любым изgetText() или getAttribute("innerText") методы

0 голосов
/ 08 октября 2019

Попробуйте этот xpath и дайте мне знать

//span[text()='Birthday']//../following-sibling::div

Пример кода:

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Test {

    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "./libs/chromedriver 4");
         WebDriver driver=new ChromeDriver();
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("https://www.facebook.com/zuck/about?lst=100002006436635%3A4%3A1570508289");
        driver.findElement(By.name("email")).sendKeys("<username>");
        driver.findElement(By.name("pass")).sendKeys("<password>");
        driver.findElement(By.name("pass")).submit();
        driver.findElement(By.name("pass")).sendKeys("<password>");
        driver.findElement(By.name("pass")).submit();
        driver.get("https://www.facebook.com/zuck/about?lst=100002006436635%3A4%3A1570508289");
System.out.println(driver.findElement(By.xpath("//span[text()='Birthday']//../following-sibling::div")).getText());

    }

}

output

14 мая 1984

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...