输入搜索框的xpath自动建议列表项目与谷歌一样

时间:2017-02-16 20:57:28

标签: java selenium xpath

我正在尝试自动搜索框输入和选择。首先我在输入框中输入一个两个字符长度的搜索字符串,当它提示可能的搜索结果列表时,我需要读取每个项目并查找特定文本(部分)并单击我想要的那个。然后该项目将被视为搜索字符串并放入原始输入框。然后我按下另一个搜索框来启动搜索。这更像是我们的谷歌搜索。

当我在Firefox中使用Firebug插件时,我看到此代码被突出显示。当然,现在这里只有两个项目,但最多可以达到10个。



<div class="ac_results" style="display: block; position: absolute; width: 400px; top: 135px; left: 520px;">
  <ul>
    <li class="ac_even ac_over">
      EURIBOR 3 MONTH FUT (
      <strong>EB</strong> )
    </li>
    <li class="ac_odd">
      EUR/GBP FUTURES (
      <strong>EB</strong> P)
    </li>
  </ul>
&#13;
&#13;
&#13;

我需要能够迭代提示的列表项,知道他们的文本,选择具有匹配文本的文本,然后单击它。感谢您的帮助。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

使用此Xpath。您将获得搜索结果列表。创建Web元素列表并迭代数组以进行验证。

&#13;
&#13;
//div[class="ac_results"]//ul//li
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您不需要遍历每一个,以便能够选择您想要的那个。这是xpath的用途,因此您可以指定所需的元素。 在这种情况下:

driver.findElement(By.xpath("//div[@class='ac_results']/ul/li[contains(text(),'" + searchtext + "')]")).click();

其中searchtext是EURIBOR 3月FUT或EUR / GBP FUTURES

xpath将是://div[@class='ac_results']/ul/li[contains(text(),'EURIBOR 3 MONTH FUT')]