我有一些代码可以找到基于可见文本的元素。
# Defines the text I am looking for
productName = "customer x job"
#Finds the element I am looking for
inputElement = driver.find_element_by_xpath(".//*[@id='demo_top']/div/table[2]/tbody/tr/td[1]/ul/li[2]/ul/li[1]/a".format(productName))
我需要点击右侧的框。
元素的特定xpath是:
#What I just found
/html/body/div[1]/div/div/table[2]/tbody/tr/td[1]/ul/li[2]/ul/li[1]/a
#The box I actually want to click
/html/body/div[1]/div/div/table[2]/tbody/tr/td[1]/ul/li[2]/ul/li[1]/span/a
所以我只需要在inputElement的xpath中添加“/ span / a”。问题是,我不知道这个元素的具体xpath。有没有办法让我将inputElement转换为特定的xpath,所以我可以在它的末尾添加“/ span / a”并单击该元素?
编辑:似乎我错了,我需要用“span / a”替换最后的“a”
下面是html:
<li class="TCbullet">
<span>
<a class="editCategory " onclick="return hs.htmlExpand(this, { objectType: 'iframe' } );" href="cat-frame-category.php?categoryID=1340"> </a> #I want to click this
<span class="sort">sort: 0</span>
</span>
<a class="anchorCategory" alt="Eden Cognitive Content" href="?ownerID=C518&g=1085&t=1340">Eden Cognitive Content</a> # I have found this
</li>
我想访问editCatagory链接,我找到了anchorCategory链接。
答案 0 :(得分:1)
您可以在已找到的元素上调用find_element_by_xpath()
:
link = inputElement.find_element_by_xpath('./preceding-sibling::span/a')
这将选择a
内的span
代码,该代码位于您找到的a
代码之后。