我正试图从看起来像这样的东西中获取数据:
<html>
<table>
<tr>
<td>
<div>
<tr>
<td>
<div>
我认为这基本上是我之前看到的,所以我做了$x('//table/tr/td/div')
。这回复了10个div,所有我想要的。但是,我找不到一种方法来浏览这10个div。它不只是$x('//table/tr/td/div[?]')
,在哪里?可以1-10? BTW这是一个动态表,每个div是一个不同的模块导航到页面的一部分,所以我试图自动登录并进入某个模块,但我只能选择所有10个而不是单个模块。在这个html中,div 1和div 2就像“安全模块”和“票务模块”。
答案 0 :(得分:2)
首先,你可能想在Firefox上试用Firebug + Firepath,这是一个比Chrome开发工具更方便的工具。
对于您的问题,您可以通过xpath或Selenium
执行此操作使用Xpath的索引(从一个开始),假设你想要第二个:
# second div's xpath: (//table/tr/td/div)[2]
second_div = driver.find_element_by_xpath("(//table/tr/td/div)[2]")
使用Selenium的索引(即从你的xpath获取所有十个div,然后从零开始索引它们):
all_divs = driver.find_elements_by_xpath("//table/tr/td/div") # all_divs should have 10 elements
second_div = all_divs[1] # zero-based index