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 のインデックス (1 から開始) を使用して、2 番目が必要だとします。

# second div's xpath: (//table/tr/td/div)[2]
second_div = driver.find_element_by_xpath("(//table/tr/td/div)[2]")

Selenium のインデックスを使用する (つまり、xpath から 10 個の 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 に答える