2016-09-19 14 views
1

i`m内の行を見つけるためにPythonで正規表現、と私は行を持つテーブルを見つけ、この行は、2つの異なるclasesのある一点に:いくつかのテストを自動化するためのpythonを使用して表

あなたは、クラス名を持っています」 「gris-claro-tr」および「gris-oscuro-tr」が挙げられる。

テーブル全体を繰り返して、すべての行のテキストを見つける必要があります。今まで私は持っていました:

 for row in driver.find_elements_by_class_name("gris-claro-tr"):  
      cell = row.find_elements_by_tag_name("td")[1] 
      print (cell.text) 

もちろん、そのクラスの行に対してのみ動作します。私は "gris-oscuro-tr"と同じことをしなければなりません。しかし、私は両方の行のクラスを見つけることができる正規表現を見つけることができた場合、私は "gris-claro-td"または "gris-oscuro-td"であっても、そのテーブルのすべての行のテキストを取得します。

質問は:どのように正規表現を作ることができますか?

"gris - " + "*"のようなものですか?

ありがとうございました!あなたはCSSセレクタでそれに近づくことができる

+0

自分のタグ名でreplcedすることができ

driver.find_elements_by_xpath("//*[@class='gris-claro-tr'] or [@class='gris-oscuro-td'] ") 

*を使用することができます - 。* - ?td' –

答えて

1

:ここ

driver.find_elements_by_css_selector(".gris-claro-tr,.gris-oscuro-tr") 

,手段 "または"、ドットは、クラス名セレクタを定義します。


それとも、あなたにも、少し少ない明示的にかかわらず、部分的な一致を適用することができます。^=手段は、「で始まる」

driver.find_elements_by_css_selector("[class^=gris][class$=tr]") 

は、$=手段が、「で終わります」。

+0

は、それが完全に働いた、ありがとうございました。今私はもう一つの問題があります:あなたはそれぞれの行に "canjear"というテキストのボタンを持っています。要点は、必要なテキストがある行に属するボタンをクリックする必要があることです。この場合、行のインデックスを取得するにはどうすればよいですか? – GHM

+0

@GHMもっと助けが必要な場合は、別にSOの質問を作成できるかどうか確認してください。テーブルのHTMLコードを提供することを忘れないでください。ありがとう! – alecxe

0

あなたはXPATHを主張する場合は、 `グリ試す

関連する問題