2016-10-28 14 views
0

私はセレニウム(python)で作業していますので、ボタンをクリックしてください。コードは次のようになります。python - ボタンをクリックするにはセレンに苦労している

from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get('my_url') 

try: 
    driver.find_element_by_partial_link_text('Mais').click() 
except: 
    pass 

何も起こりません。ソースを検査し、後、私はこれは私が見つけたい要素であるかなり確信している:

<input class="ksb _kvc" value="Mais resultados" id="smb" data-lt="Carregando..." jsaction="str.smr" data-ved="0ahUKEwjPtK6Fwv3PAhVGI5AKHTkSDVsQxdoBCE8" type="button" /> 

答えて

1

は、私は何もするので起こりません疑う

driver.find_element_by_id('smb').click() 

よりもむしろ

driver.find_element_by_partial_link_text('Mais').click() 

を試してみました失敗した場合は元のコードに例外がスローされます。 要素を探すときには通常id/nameを使用しますが、通常は一意です。完全なリストについては、selenium-python.readthedocs.io/locating-elements.html

+0

美しい!どうもありがとう。それが有効になるとすぐに7分でアップヴォートする。 –

+0

クールで、要素の位置を特定しようとすると、通常id/nameが通常ユニークなものとして使用されます。完全なリストについては、http://selenium-python.readthedocs.io/locating-elements.html – TheoretiCAL

+0

をもう一度見てください!セレンは全く新しいものです。一般的にjsについてはほとんど分かりません。素晴らしいアドバイス。 –

1

driver.find_element_by_partial_link_text()を使用しているため、その部分テキストでリンク(アンカー要素)を検索し、その上でアクションを実行する場合にのみ有効です。

要素ID、名前、XPath、CSSセレクタ、またはクラス名で見つけることができる他のfind_element_by_xxxx()メソッドに依存する必要があります。

要素の検索に関するドキュメントを参照してください。http://selenium-python.readthedocs.io/locating-elements.html

+0

ありがとうMukesh –

関連する問題