1
Help us understand the problem. What are the problem?

posted at

seleniumでリンク(aタグ)をクリックできないときの対処

やりたいこと

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)

しかし、最後までクリックが動作しなくなったのは謎でございます。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?