実現したいこと
- はてなブログの「記事いいねボタン」 および 「読者になるボタン」がseleniumでクリックしたい
前提
- PythonのSeleniumを使用し、はてなブログの「記事いいねボタン」と「読者になるボタン」をクリックするプログラムを作成しています。
- driver.get(url)ではてなブログを開き、自動でログインして、いいねを押したい記事を開くところまではできました。(今回は特定のグループを開き、最新投稿を上から順にいいねと読者登録することを想定しています)
発生している問題・エラーメッセージ
Message: no such element: Unable to locate element
該当のソースコード
- 記事いいねボタンのクリック
python
1driver.find_element(By.CSS_SELECTOR, "#root > div > div > button").click()
- 読者になるボタンのクリック
python
1driver.find_element(By.CSS_SELECTOR, "#box2-inner > div.hatena-module.hatena-module-profile > div.hatena-module-body > div.hatena-follow-button-box.btn-subscribe.js-hatena-follow-button-box > a > span.unsubscribing > span.foreground").click()
試したこと
- Chromeの開発者ツールを用いて、ボタンのCSSセレクタを取得したつもりですが、エラーが出てしまいました。
- 本来であれば、マウスがボタン上にある時に出てくるときのCSSセレクタ?を取得する必要があるのでしょうか?不勉強で正しい取得方法等がわからないので、教えていただきたいです。正しいソースコードを提示いただけますと幸いです。
「読者になる」ボタンに関して言えば、span 要素はクリックできないので a 要素を対象にすべきかと思います。
driver.find_element(By.CSS_SELECTOR, "#box2-inner > div.hatena-module.hatena-module-profile > div.hatena-module-body > div.hatena-follow-button-box.btn-subscribe.js-hatena-follow-button-box > a").click()
「スパム行為をしたい」という意思表明に見えるのですが、回答して大丈夫でしょうか?
「記事いいねボタン」 および 「読者になるボタン」は、人間が記事を読んだ上で判断して押す物です。
a要素にしても、同じエラーとなってしまいました。。。
手元の環境は Python 3.11.6/Selenium 4.20.0/chromedriver 25.0.6422.60 ですが、「読者になる」ボタンをクリックできています。(会員登録はしていないので、登録を促すページへ遷移します)
コメントありがとうございます。プログラムを一旦シンプルにし、「①特定のページを開く -> ②ボタンクリックする」だけを試したところ問題が解決しました!
ベストアンサーに選びたいので「aタグを〜」内容を回答欄に投稿いただけますでしょうか?

回答1件
あなたの回答
tips
プレビュー