質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

246閲覧

クリックボタン押せない

razz000123

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2025/04/18 03:06

実現したいこと

https://www.kaigo-hoken.jp/a1011002/

ダウンロードボタンを待ってクリック

download_button = WebDriverWait(driver, 20).until( EC.element_to_be_clickable((By.XPATH, '//*[@aria-label="ダウンロード"]')) ) download_button.click() time.sleep(2) # ダウンロード開始まで待機(必要に応じて調整) print(f"ダウンロード完了: {url}") except Exception as e: print(f"エラー: {url} - {e}")

driver.quit()

発生している問題・分からないこと

ページ開くがダウンロードボタン押せない

エラーメッセージ

error

1ボタンクリック出来ない

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

https://www.kaigo-hoken.jp/a1011002/ ぺージ開いて ボタンクリックする方法教えてください

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

melianさん
ありがとうございました。ちなみに試してみたがやっぱり動かないです、ちなみに勉強不足で申し訳ないですが やっぱりボタンクリックしないで止まります。複数の上記みたいリンクあり 繰り返しでページ開いてダウンロードボタン押してまた次のページ開いてダウンロードボタン押してしたいですが 下記のコード送ります
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from openpyxl import load_workbook
import time

Excelファイルのパスとシート名

excel_path = 'links1.xlsx'
sheet_name = 'Sheet1' # シート名を適宜変更

Excelファイルからリンク一覧を取得

wb = load_workbook(excel_path)
ws = wb[sheet_name]

1列目(A列)のリンクをリスト化(空セルは除外)

urls = [cell.value for cell in ws['A'] if cell.value]

Seleniumドライバー起動

driver = webdriver.Chrome()

for url in urls:
driver.get(url)

driver = webdriver.Chrome()
driver.get(url)
driver.implicitly_wait(5)

iframeへ移動

iframe = driver.find_element(By.CSS_SELECTOR, 'iframe.pdfjs-iframe')
driver.switch_to.frame(iframe)

download_button = WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, 'button#download'))
)
download_button.click()
time.sleep(10) # ダウンロード開始まで待機(必要に応じて調整)
print(f"ダウンロード完了: {url}")
driver.quit()

投稿2025/04/18 04:22

razz000123

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2025/04/18 04:35

ウェブページ(URL)ごとに iframe のクラス名が異なっているのかもしれません。少なくとも手元の環境では h ttps://www.kaigo-hoken.jp/a1011002/ でのダウンロードに成功しています。
razz000123

2025/04/18 04:39

melian さん ありがとうございました。ダウンロード出来ました ものすごく参考になるりました また困ったら聞きますのでお願い致します
razz000123

2025/04/18 07:16

melian さん今日大変助かりました、もう一個教えて頂きたいですが selenium3 で Firefoxで先輩が書いている python自動収集コードは selenium4で chromedriverで動かしたい どうすればいいのか 教えてください
melian

2025/04/18 07:48

Selenium4 の最新版では driver = webdriver.Chrome() とするだけで使用している Chrome のバージョンにマッチする chromedriver を自動でダウンロードしてくれます。Selenium3 と Selenium4 との大きな違いは find_element/find_elements 系統のAPIです。 例えば、XPATH の場合は以下の様になります。 selenium3: driver.find_element_by_xpath("..."); selenium4: driver.find_element(By.XPATH, "..."); 以下の記事の「2. 変換表」を参考にしてください。 Selenium 3 to Selenium 4 Converter https://www.math-joy-life.com/selenium-3-to-selenium-4-converter
razz000123

2025/04/21 04:00

melian さん先日ありがとうございました。やっぱりですねselenium3で先輩が作ったChromedirver で動かない可能であればどこ変えればよいのか 教えて頂けますか?
guest

0

目的のボタンは iframe の内部にありますので、事前にそちらのフレームへ移動します。

html

1<div> 2<iframe width="100%" height="800px" 3 src="https://www.kaigo-hoken.jp/wp-content/plugins/pdfjs-viewer-shortcode/pdfjs/web/viewer.php?file=https://www.kaigo-hoken.jp/pdf/a1011002.pdf&#038;attachment_id=0&#038;dButton=true&#038;pButton=false&#038;oButton=false&#038;sButton=true#zoom=auto&#038;pagemode=none&#038;_wpnonce=aa4891c405" 4 title="Embedded PDF" class="pdfjs-iframe"> 5</iframe>

python

1url = 'https://www.kaigo-hoken.jp/a1011002/' 2 3driver = webdriver.Chrome() 4driver.get(url) 5driver.implicitly_wait(5) 6 7# iframeへ移動 8iframe = driver.find_element(By.CSS_SELECTOR, 'iframe.pdfjs-iframe') 9driver.switch_to.frame(iframe) 10 11download_button = WebDriverWait(driver, 20).until( 12 EC.element_to_be_clickable((By.CSS_SELECTOR, 'button#download')) 13) 14download_button.click() 15time.sleep(10) # ダウンロード開始まで待機(必要に応じて調整) 16print(f"ダウンロード完了: {url}")

投稿2025/04/18 03:57

melian

総合スコア21109

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問