我尝试使用python(Selenium webdriver)从列表中搜索字符串
<li role="treeitem" aria-expanded="true" id="List" class="jstree-node jstree-open">
<i class="jstree-icon jstree-ocl"></i>
<a class="jstree-anchor" href="#"><i class="jstree-icon jstree-themeicon"></i>Employees</a>
<ul role="group" class="jstree-children">
<li role="treeitem" id="workid:1" class="jstree-node jstree-leaf"><i class="jstree-icon jstree-ocl"></i>
<a class="jstree-anchor" href="#"><i class="jstree-icon jstree-themeicon"></i>Anna Def(1)</a></li>
<li role="treeitem" id="workid:2" class="jstree-node jstree-leaf" aria-selected="false"><i class="jstree-icon jstree-ocl"></i>
<a class="jstree-anchor" href="#"><i class="jstree-icon jstree-themeicon"></i>Dave Hjk(2)</a></li>
<li role="treeitem" id="workid:3" class="jstree-node jstree-leaf"><i class="jstree-icon jstree-ocl"></i>
<a class="jstree-anchor" href="#"><i class="jstree-icon jstree-themeicon"></i>Ght Dgh(3)</a></li>
<li role="treeitem" id="workid:4" class="jstree-node jstree-leaf"><i class="jstree-icon jstree-ocl"></i>
<a class="jstree-anchor" href="#"><i class="jstree-icon jstree-themeicon"></i>Acdc Dedef(4)</a></li>
从这个列表中我想从树中找到Employee Dave Hjk(2)并选择他。如何使用循环搜索?
这是我尝试过的,但我认为我获得阵列(li)的方式是:(
li = SeleniumHelperInstance.driver.find_elements_by_xpath("//*[@id="List"]/ul")
for i in range(len(li)):
selectuser = "Dave Hjk(2)"
compUser = SeleniumHelperInstance.driver.find_element_by_css_selector("#List > ul > li:nth-child(i)")
if (selectuser == compUser.text):
compUser.click()
答案 0 :(得分:1)
您可以先找到树,然后找到find_element_by_link_text
的链接:
driver.find_element_by_id("List") \
.find_element_by_link_text("Dave Hjk(2)") \
.click()
您还可以使用XPath通过一次调用获取链接:
driver.find_element_by_xpath("id('List')//a[.='Dave Hjk(2)']") \
.click()