我的xpath不起作用

时间:2013-05-22 01:54:43

标签: python selenium webdriver

我正试图从看起来像这样的东西中获取数据:

<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就像“安全模块”和“票务模块”。

1 个答案:

答案 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