Selenium Python:获取找到元素的行索引
这个网址是 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),这样我可以把它加1,然后用这个值进行下一步操作。不过,tr的索引会根据网址中传入的ID而变化。那么我该如何获取这个索引呢?
任何帮助都非常感谢!
1 个回答
0
给定“基于证据的评估”的xpath是:
driver.find_element_by_xpath("//*[@id='contentHolder']//td[text()='Evidence Based Evaluations']")
后续所需元素的xpaths是:
//*[@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)
我成功获取了相关数据