我有以下代码块:
<div id="rtmenu"><span class="rt-combobox"><input name="" type="text" autocomplete="off" label="" placeholder="" class=""><span class="rt-combobox-button" style="-webkit-user-select: none;">▼</span><div class="menu-vertical" role="menu" aria-haspopup="true" style="-webkit-user-select: none; left: 342px; top: 357px; display: none;"><div class="rt-menuitem" role="menuitem" id=":l" style="-webkit-user-select: none;"><div class="rt-menuitem-content">Cars</div></div><div class="rt-menuitem" role="menuitem" id=":m" aria-hidden="false" style="-webkit-user-select: none;"><div class="rt-menuitem-content">Motorcycles</div></div></div></span></div>
我想要做的是按照文本(或值)选择菜单项“汽车”和“摩托车”。我可以通过xpath或ID轻松获取它们,但问题是它们的ID经常更改,并且新项目会添加到列表中,这样也会破坏我的xpath。
我尝试使用“选择”,但此下拉菜单不是传统意义上的选择菜单。
非常感谢任何帮助。谢谢大家
p.s我正在使用c#
答案 0 :(得分:0)
我不熟悉c#,但我可以建议一两种方法。
由于它不是选择标记,在所有情况下您都必须模仿真实用户的操作,例如点击 - 等到选项列表显示 - 找到所需选项 - 点击它
.//div[text()='Cars']
直接获取所需选项您已经提到由于新ID和列表中的项目导致您的定位器无效,因此ypu需要使用此类定位器,在这种情况下不依赖于ID或索引。顺便说一句,在xpath中使用索引是可怕的,恕我直言