如何使用Selenium IDE选择没有编码的下拉列表

时间:2017-01-10 18:25:31

标签: selenium xpath selenium-ide

我需要使用Selenium来自动化测试,其中包含复选框,下拉列表和文本框。跌落目前是一个问题。似乎问题是Selenium无法识别录音中的元素。我已经研究过这个主题,但找不到任何不涉及大量编码的解决方案。出于工作目的,我只能使用IDE。

我尝试了最后一个解决方案:Selecting a drop-down option using Selenium IDE

但它没有用。我尝试过click,select和sendkeys命令。最佳命令似乎是单击,单击下拉列表并显示选项。我无法弄清楚如何选择该选项。当我点击下拉列表时,我在Selenium中获得以下内容:

xpath=(//button[@type='button'])[15]

点击选项后:

//div[12]/div/ul/li[7]/a/span

使用firebug后,我看到下拉代码为:

<button class="btn dropdown-toggle selectpicker btn-default" type="button" data-toggle="dropdown" title="--Select Value--">

我该怎么做?当我只针对下拉列表执行较小的测试时,它会起作用,然后在我在较大的测试中执行它后的第二天它就会失败。

1 个答案:

答案 0 :(得分:0)

我错过了解释中的一些细节,但听起来你的下拉菜单并不是一个真正的下拉菜单,而是一个按钮,点击后会显示带有大量链接的div,你就是应该点击。所以我建议这样的事情:

  1. 单击按钮。

    Command: click
    Target: xpath=(//button[@type='button'])[15]
    
  2. 等待//div[12]/div/ul出现。

    Command: waitForVisible
    Target: //div[12]/div/ul
    
  3. 点击链接选择该选项:

    Command: click
    Target: //div[12]/div/ul/li[7]/a/span
    
  4. 注意:在上述所有情况下,我都使用了您提供的xpath,但实际上避免使用索引,而是查看是否可以通过某些属性识别该路径,例如: @id@class。它适用于按钮,ul和其他所有内容。索引是真正找到元素的最糟糕的方法,并且只应在没有其他可能的情况下使用(通常不是这样,例如按钮总是有标签)