0

我正在尝试从如下所示的内容中获取数据:

<html>
 <table>
  <tr>
   <td>
     <div>
  <tr>
   <td>
     <div>

我认为这基本上是我之前看到的,所以我做了$x('//table/tr/td/div')。这返回了 10 个 div,所有我想要的。但是,我找不到在这 10 个 div 中导航的方法。不就是$x('//table/tr/td/div[?]'),在哪里?可以是1-10吗?顺便说一句,这是一个动态表,每个 div 都是一个不同的模块,用于导航到页面的一部分,所以我试图自动登录并转到某个模块,但我只能选择所有 10 个而不是单个模块。在这个 html 中,div 1 和 div 2 类似于“安全模块”和“票务模块”。

4

1 回答 1

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
于 2013-05-22T02:27:54.830 回答