我有一个问题,我无法找到列表项。在
<ul id="select2-id_faculty_advisor-results" class="select2-results__options" role="tree" aria-multiselectable="true" aria-expanded="true" aria-hidden="false">
<li id="select2-id_faculty_advisor-result-0pu4-1" class="select2-results__option select2-results__option--highlighted" role="treeitem" aria-selected="true">Alice</li>
<li id="select2-id_faculty_advisor-result-cayw-2" class="select2-results__option" role="treeitem" aria-selected="false">Bob</li>
<li id="select2-id_faculty_advisor-result-4h8e-3" class="select2-results__option" role="treeitem" aria-selected="false">Candy</li>
<li id="select2-id_faculty_advisor-result-el4l-4" class="select2-results__option" role="treeitem" aria-selected="false">Dark</li>
</ul>
如上所述,我无法通过id找到元素,因为它们之间的字符是动态生成的。你知道如何定位一个特定的元素吗??在
最好的方法是通过xpath来收集列表“//ul[@id='select2-id_faculty_advisor-results']/li”
之后,您可以从集合中按索引选择它们。在
在css选择器中使用id中不变的部分,例如:
li[id*='faculty_advisor-result']
如果需要,还可以添加额外的属性,例如aria selected,例如:
li[id*='faculty_advisor-result'][aria-selected='false']
或任何其他属性。在如果没有特定选项的任何特定属性,则可以使用xpath选择具有该选项的元素,例如:
^{cd3} 同样,您可以添加额外的过滤器来缩小结果,例如
[@role='tree']
相关问题 更多 >
编程相关推荐