やりたいこと
seleniumを利用してのウェブスクレイピング。
リンクをクリックしてリンク先へ遷移したいだけなんです。
できなかったこと
ターゲットとする要素を、文字列指定で特定し、クリック。
しかし、何も起こらず、静かに時を刻むだけ・・・
from selenium import webdriver
browser = webdriver.Chrome((r'C:\Users\[ユーザ名]\chromedriver.exe')
browser.get([目的のURL])
element_target = browser.find_element_by_link_text([ターゲットとする文字列])
element_target.click()
念のため[find_elements_by_link_text]で検索し要素数を確認しても1つだったため、別のお門違いのリンクをクリックしているわけでもなさそう。
「aタグからjavascriptを実行させる」ようになっている場合は、クリックが動作しない場合があるようですが、今回はそのような内容ではありませんでした。
それに、私の記憶が確かならば、上記コードで動作していたものが、ある時から急に動作しなくなりました。
仕方なく解決
クリックはもうあきらめ、下記の方法で解決することができました。
リンクをエンターキーで押下する、という方法です。
上述のコードの最後の2行を下記に置き換える感じです。
from selenium.webdriver.common.keys import Keys
element_target = browser.find_element_by_link_text([ターゲットとする文字列])
element_target.send_keys(Keys.ENTER)
しかし、最後までクリックが動作しなくなったのは謎でございます。