2016-09-27 83 views
0

我有一个问题,我无法找到列表项。如何使用动态生成的ID选择列表项 - 硒测试Python

<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查找元素,因为它们之间的字符是动态生成的。任何想法如何找到一个特定的元素?

回答

0

使用不CSS选择喜欢改变ID部分:
li[id*='faculty_advisor-result']

如果需要,您还可以添加额外的属性,例如唱段选择,如:
li[id*='faculty_advisor-result'][aria-selected='false']或任何其他属性。

如果没有特定选项的任何特定属性,那么你可以使用XPath来选择具有这样的选项元素:
//li[contains(@id, 'faculty_advisor-result')][text()='Alice'] 以同样的方式,你可以添加额外的过滤器来缩小结果类似[@role='tree']

+0

感谢@lauda它的作品! :) – user6830228

0

做与XPath使列表的收集最好的办法“// UL [@ ID =‘选择2-id_faculty_advisor-结果’] /李”

后,您可以通过从集合索引选择它们。

相关问题