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));