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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

1742閲覧

Python Seleniumでprogressbarが進捗推移完了するまで待機する条件構文

Kosuke1024

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/04/09 21:59

Python Seleniumでファイルを自動ダウンロードするプログラムを思考しています。

ファイルのダウンロード中、HTMLのprogressbarが0%から100%に向けて推移し、100%に達すると"サーチ完了"の表記に変わります。
python seleniumの構文で、progressbarの文字が"サーチ完了"になるまで待機する文を書きたいのですが、構文が分かりません。

progressbarは以下のようなHTMLを持っています。

html

1<div class="progress"> 2 <div class="progress-bar" role="progressbar" style="width:0" id="progress-bar"> 3 <span id="progress-bar-text">0%</span> <!-- 0%から100%へ向けて推移 --> 4 </div> 5</div>

以下のようにprogressbarの要素を取得し、待機条件を記載する方法を想定していますが可能でしょうか。

python

1search_wait = driver.find_element_by_id("progress-bar-text") 2wait = ~~~ # progressbarの文字が"サーチ完了"になるまで待機

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

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

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

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

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

guest

回答1

0

ベストアンサー

イージーにいくと

Python

1import time 2 3search_wait = driver.find_element_by_id("progress-bar-text") 4while (search_wait.text != "100%"): 5 time.sleep(1)

で、待機の目的を達成できると思いますが、

Python

1from selenium.webdriver.support.ui import WebDriverWait 2from selenium.webdriver.support import expected_conditions 3 4search_wait = driver.find_elements_by_id("progress-bar-text") 5WebDriverWait(driver, 10).until(expected_conditions.text_to_be_present_in_element(search_wait, "100%")) 6#'Message: invalid argument: 'using' must be a string' 7# text_to_be_present_in_element_value というのもある 8# span タグ以外ならうまくいく?

という、それ用の方法もありそう。……なんですが、
でも私の環境では'Message: invalid argument: 'using' must be a string'というエラーでコケました。
なにか間違ってるのかそれともこれじゃないのか調べきれませんでしたので、
「下のは関係あるかもしれないキーワード」としてあげておきます。

投稿2021/04/10 04:55

編集2021/04/10 04:57
FromMZ1500

総合スコア496

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

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

Kosuke1024

2021/04/10 20:26

ひとまずイージーな方の構文を組み込んでうまく動作させることができました。 ありがとうございます! 下の方の仕組みも参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問