【发布时间】:2014-09-27 11:01:38
【问题描述】:
如果这个问题的回答令人作呕,我深表歉意。我要么没有理解答案,要么没有直接找到这种情况的答案。我需要使用它的兄弟元素作为标识符来选择一个子元素。这是一个代码sn-p示例
<div class="my-groups-popup">
<div class="listbox-container">
<div class="list-item">
<div class="edit-box">
<div class="body">
<input type="text" value="The First Input">
</div>
</div>
<div class="controls">
<button class="image move-up"></button>
<button class="image move-down"></button>
<button class="image delete"></button>
</div>
</div>
<div class="list-item">
<div class="edit-box">
<div class="body">
<input type="text" value="The Second Input">
</div>
</div>
<div class="controls">
<button class="image move-up"></button>
<button class="image move-down"></button>
<button class="image delete"></button>
</div>
</div>
...
<div class="list-item">
<div class="edit-box">
<div class="body">
<input type="text" value="The nth Input">
</div>
</div>
<div class="controls">
<button class="image move-up"></button>
<button class="image move-down"></button>
<button class="image delete"></button>
</div>
</div>
</div>
</div>
可以看出,我有一个包含多个列表项的列表框容器。每个列表项包含一个输入框和 3 个按钮控件。但是在组中唯一唯一的输入是我需要选择的按钮控件的“表亲”。
通常,我会尝试类似:
css=.my-groups-popup .list-item:contains("The Second Input") button.move-up
但由于唯一值是元素的一部分,我不确定如何形成选择器。按钮不是输入元素的直接兄弟。但是输入的祖父母与按钮的祖父母相同。我在想这样的事情:
css=.my-groups-popup .list-item input[value="The Second Input"] ~ .controls button.move-up
但是当我尝试这样做时,它不起作用。此外,使用“~ *”并没有返回任何东西的数组。所以我怀疑我没有接近正确的语法。
【问题讨论】:
-
没有 CSS 选择器可以帮助您根据输入值获得所需的按钮,但是您可以使用
:nth-child查找第二个列表项,这有帮助吗?
标签: html css-selectors selenium-ide