的webdriver。如何检索找到的元素的xpath?

时间:2014-06-27 18:44:54

标签: python selenium xpath webdriver children

我有一些代码可以找到基于可见文本的元素。

# 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链接。

1 个答案:

答案 0 :(得分:1)

您可以在已找到的元素上调用find_element_by_xpath()

link = inputElement.find_element_by_xpath('./preceding-sibling::span/a')

这将选择a内的span代码,该代码位于您找到的a代码之后。