Java 获取没有标识符的数据

Java 获取没有标识符的数据,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,为了进行描述性统计分析,我需要从网页上获取数据 有一条记录是这样的: <div class="space"></div> <p style="margin-bottom: -5px;">R110327</p> <h1>Test</h1> <div class="hline_index"></div> <p>TestProfession<br&g

为了进行描述性统计分析,我需要从网页上获取数据

有一条记录是这样的:

<div class="space"></div>

    <p style="margin-bottom: -5px;">R110327</p>

    <h1>Test</h1>

    <div class="hline_index"></div>

    <p>TestProfession<br>
    city, street<br>
    Tel: 129128312 Serie, Fax: 214213413<br>
    Email: <a href="mailto:test">test</a><br>
    Web: <a href="test.at" target="_blank">http://www.test.at</a><br>
    <br>
    Language: English<br>
    Profession: meditation, sport<br></p>

    <div class="hline_index"></div>

    <div class="space"></div>
然而,我只回来了:

[Person[fullName=Search,profession=,street=,…

正如您所看到的,只有第一个字段始终为我提供相同的文本,另外两个字段返回“”

我认为我的
xpath
是错误的,但是当我没有标识符时,我正在努力获取想要的字段

有没有关于如何获取这三个字段的建议


感谢您的回答!

在您试图访问的元素之前,您可能有一些
元素

实际上要访问的所有元素都在

因此,您应该启动与
//div[@id='content\u head\u folge']
一起使用的每个XPath


List fullNames=driver.findElements(By.xpath(“//div[@id='content\u head\u folge']/h1”);
List professions=driver.findElements(By.xpath(“//div[@id='content\u head\u folge']/p”);
List streets=driver.findElements(By.xpath(“//div[@id='content\u head\u folge']]/p/br[1]”);
//2811结果
对于(int i=0;i<2811;i++)
添加(newperson(fullNames.get(i).getText(),professions.get(i).getText(),streets.get(i).getText(),null,null,null,null));

Thx谢谢你的回答!你能举个例子告诉我怎么走这条街吗?我不知道怎么走得更深。
street=driver.findelelement(by.xpath(“//div[@id='content\u head\u folge']]/p/br[1]”)
Thx非常感谢您的帮助!@Vivien:我刚刚注意到您甚至没有使用
列表
中的
WebElement
对象,所以在答案中添加了这样的内容。。。
public ArrayList<Person> getWantedFields() {
    log.info("retrieve wanted fields");

    resultList = new ArrayList<Person>();

    WebElement fullName = driver.findElement(By.xpath("//h1"));
    WebElement profession = driver.findElement(By.xpath("//p"));
    WebElement street = driver.findElement(By.xpath("//p/br[1]"));

    //2811 results
    for (int i = 0; i < 2811; i++) {
        resultList.add(new Person(fullName.getText(), profession.getText(), street.getText(), null, null, null, null, null));                   
    }

    log.info(resultList.toString());

    return resultList;
}
List<WebElement> fullNames   = driver.findElements(By.xpath("//div[@id='content_head_folge']/h1"));
List<WebElement> professions = driver.findElements(By.xpath("//div[@id='content_head_folge']/p"));
List<WebElement> streets     = driver.findElements(By.xpath("//div[@id='content_head_folge']/p/br[1]"));

//2811 results
for (int i = 0; i < 2811; i++)
    resultList.add(new Person(fullNames.get(i).getText(), professions.get(i).getText(), streets.get(i).getText(), null, null, null, null, null));