我想从http://www.makemytrip.com/flights/的“From”下拉列表中提取值,然后将其与特定搜索字符串进行比较,以查找字符串是否存在于下拉列表中的值中。但是我无法提取值,因为这些字段是隐藏的。这是一个自动完成下拉列表。
下拉列表中的html部分
<div class="container">
<div class="search_selector" style="display: none;">
<div class="col-xs-12">
<div class="city_sel_top">
<div class="top_cities_scroll" style="margin-top: -5px;">
<ul id="near_button" class="top_cities_list" style="width: 98%;">
<ul class="from_city_list top_cities_list" style="width: 98%; display: none;">
<li class="top_cities_heading text-right">Top Domestic Cities</li>
<li id="DEL|Y|New Delhi|India">
<a class="from_city_value1" href="javascript:void(0);">New Delhi, India (DEL)</a>
</li>
<li id="DEL|Y|New Delhi|India">
<a class="from_city_value1" href="javascript:void(0);">New Delhi, India (DEL)</a>
</li>
<li id="BOM|Y|Mumbai|India">
<a class="from_city_value2" href="javascript:void(0);">Mumbai, India (BOM)</a>
</li>
<li id="BLR|Y|Bangalore|India">
<a class="from_city_value3" href="javascript:void(0);">Bangalore, India (BLR)</a>
</li
&GT; ......
我试过了:
WebDriver driver;
List<WebElement> li = driver.findElements( By.xpath("//div/div[2]/ul[2]/li/a"));
这给了我一个没有这样的元素异常,因为ul [2]下的第一个li元素下面没有'a'元素。我想从第二个li元素开始获取'a'元素。
答案 0 :(得分:1)
你的XPath太严格了!使用By.tagName("a")
。
答案 1 :(得分:0)
如果您只想要第一项的'a',那么我认为SiKing的解决方案是最好的。但是你必须使用xpath,那么我认为它应该是以下内容:
//div/div/div/div[2]/ul[2]/li[2]/a