Selenium IDE下拉无序列表元素选择方法及链接选择问题求助
解决Selenium IDE中无序列表元素选择的问题
1. 如何选择下拉无序列表中的元素
先给你划个重点:Selenium IDE里的Select命令只适配HTML原生的<select>标签,而你说的下拉无序列表(大多是<ul>/<li>搭出来的导航菜单),得用模拟真实用户点击的逻辑来操作,步骤一般是这样:
- 第一步:点击触发下拉菜单的按钮/元素,让隐藏的列表展开
- 第二步:点击列表里的目标
<li>或者它嵌套的<a>元素
举个实际操作的例子:
- 先展开菜单:
Command: Click,Target: css=button.menu-trigger(这里换成你页面里实际的触发元素定位器) - 再点击目标项:
Command: Click,Target: xpath=//li[contains(text(),'你的目标文本')]/a
2. 解决你无法选择特定链接的问题
看了你贴的HTML代码:
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22594"><a href="http://toolsqa.com/automation-practice-form/" data-level="2"><span class="menu-item-text"><span class="menu-text">Automation Practice Form</span></span></a></li>
你之前用Select命令没成功太正常了——这个菜单根本不是<select>标签!下面给你几个靠谱的解决方案:
方案一:通过元素class精准定位
用CSS选择器直接定位<li>里的<a>标签:
Command: ClickTarget: css=.menu-item-22594 a
方案二:通过链接文本定位
如果这个菜单文本是唯一的,用XPath按文本匹配更直观:
Command: ClickTarget: xpath=//span[text()='Automation Practice Form']/ancestor::a
或者用链接的href属性来定位,也很稳定:Target: xpath=//a[contains(@href,'automation-practice-form')]
方案三:用录制功能偷懒
要是手动写定位器嫌麻烦,直接打开Selenium IDE的录制模式,手动点击这个链接,IDE会自动生成对应的Click命令和定位器,拿来就能用~
最后再啰嗦一句:以后碰到非<select>的下拉菜单,都别碰Select命令,用Click模拟用户操作就对啦!
内容的提问来源于stack exchange,提问作者Karim Shoorbajee




