Selenium Python:获取找到的元素行的索引

时间:2014-07-09 17:57:42

标签: python selenium xpath

网址为http://www.ukmi.nhs.uk/applications/ndo/record_view_open.asp?newDrugID=5073

我需要检查是否有基于证据的评估'存在,如果存在,打印下的内容。为了找到标题,我所做的是:

driver.find_element_by_xpath("//*[@id='contentHolder']//td[text()='Evidence Based Evaluations']")

完整的xpath是:

//*[@id="contentHolder"]/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr/td[1]/table/tbody/tr[22]/td

下一个元素的xpath(我需要打印)是:

 //*[@id="contentHolder"]/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr/td[1]/table/tbody/tr[23]/td[1]

我需要得到tr的索引(在这种情况下是22),所以我可以增加它并将其用于下一步。但是,tr的索引根据URL中传递的ID而变化。那我怎么得到这个索引呢?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

给出基于证据的评估的xpath'是:

driver.find_element_by_xpath("//*[@id='contentHolder']//td[text()='Evidence Based Evaluations']")

后续所需元素的xpath是:

//*[@id="contentHolder"]/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr/td[1]/table/tbody/tr[23]/td[1]
//*[@id="contentHolder"]/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr/td[1]/table/tbody/tr[24]/td[1]
//*[@id="contentHolder"]/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr/td[1]/table/tbody/tr[25]/td[1]

我做的是

inp = driver.find_elements_by_xpath("//*[@id='contentHolder']//td[text()='Evidence Based Evaluations']/following::tr/td[1]")

然后使用

print (inp[i].text)

我能够获得相关数据