需要您帮助在Selenium中找到findElements
方法的正确XPath。以下是详细信息:
网址 - http://www.cleartrip.com/hotels/info/hotel-royal-heritage-30km-before-mount-abu-713374/
从上面的网址中,我想只提取页面右侧可用的以下标题。
1)基本设施
2)食品与食品饮料
3)旅行
4)个人服务
5)其他设施
到目前为止,我已尝试过以下XPath:
1)html/body/div[1]/div[4]/div[2]/*
这将提取所有内容以及标题下列出的设施。
2)html/body/div[1]/div[4]/div[2]/h3/*
这不起作用。
3)html/body/div[1]/div[4]/div[2]/h[*]
这也不起作用。
有什么想法吗?
谢谢, 巴勒特。
答案 0 :(得分:1)
You can try these
//*[@class='col col8']/h3
//*[@class='hotelInfo row']/div[2]/h3
You can iterate using this:
List<WebElement> expected = driver.findElements(By.xpath("//*[@class='col col8']/h3"));
for (int i=0; i<expected.size(); i++){
System.out.println(expected.get(i).getText());
}
Which prints
Basic amenities
Food & Beverage
Travel
Personal Services
Other Amenities
Hotel Amenities Basic
Room Amenities
答案 1 :(得分:0)
为什么不将所有元素存储在列表中?
List<WebElement> list = getDriver().findElements(By.xpath(.//*[@id='HotelTabs']/li));
这将使您可以轻松地迭代标题并执行您需要执行的操作。