今天做列表选择的时候发现列表中只有一个text值是独立的可以用来定位,虽然含有name、class和id的值,但都是动态的,会变化,不能使用这些值定位。
<span style="font-size:18px;"> <ul id="Tree" class="easyui-tree tree">
<li>
<ul style="display:block">
<li>
<div id="tree_6" class="tree-node">
<span class="tree-indent"></span>
<span class="tree-indent"></span>
<span class="tree-icon"></span>
<span class="tree-title">人事部</span>
</div>
</li>
<li>
<div id="tree_9" class="tree-node">
<span class="tree-indent"></span>
<span class="tree-indent"></span>
<span class="tree-icon"></span>
<span class="tree-title">销售部</span>
</div>
</li>
</ul>
</li>
</ul></span>
第一种方法,比较笨的方法
所以使用了for循环来获取列表中text的值,然后来定位
先定位所有<span class="tree-title">:我是用的是css定位:xxs=ff.find_elements_by_css_selector("span.tree-title")
然后利用for 循环取得每一个<span class="tree-title">,并判断是否包含列表中的text,若包含,则点击该选项
xxs=ff.find_elements_by_css_selector("span.tree-title")
for xx in xxs:
if "人事部" in xx.text:
xx.click()
第二种方法,使用xpath定位:
driver.find_element_by_xpath("//li/div/span[contains(text(),'销售部')]")