Selenium中的XPath定位器

时间:2015-06-30 12:40:07

标签: java selenium xpath

需要您帮助在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[*] 这也不起作用。

有什么想法吗?

谢谢, 巴勒特。

2 个答案:

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

这将使您可以轻松地迭代标题并执行您需要执行的操作。