2016-05-06 5 views
0

前のフォームが完了するまでウェブサイトフォームの選択を無効にします。ウェブサイトが記入するのに時間がかかります。私はwait.until(EC.element_to_be_clickable((By.ID, "...")))を使用しようとしますが、それは私に時間例外エラーを返します。私は睡眠を試みた(2)、それは動作します。私はまだこの場合に待機を使用できるかどうか疑問に思っています。待機時使用時のPythonセレニウムウェブドライバ時間例外

+0

予想される条件を待つ時間を指定する必要があります。 KevGeoが提供する答え '(driver、30)'は、あなたのスクリプトが必要な要素のために30秒待ってから、まだクリックできない場合は 'TimeOutException'を送出することを意味します。 – Andersson

答えて

1

質問が不明です。これまでに試したこと/達成したことを詳細に示す必要があります。しかし、私が理解しているところから、私はあなたに一般的な質問に答えようとします。

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

element = WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.ID, "ID_of_the_element"))); 
element.click(); 

私は要素ロケータとしてIDを使用しているこの場合:正しい構文は次のようになりクリック可能にする要素を待つために

。 XPATHなどの他のものを使うこともできます。

希望があれば。

+0

あなたの返信ありがとうございました。私はwait = WebDriverWait(ブラウザ、10)を使用し、それは私に時間例外エラーを返します。ここ10は10秒と仮定します。私はフォーム(選択オプション)がクリック可能でないかどうか疑問に思っています。 –

+0

selectオプションはクリック可能ですが、正しい方法を使用する必要があります。これは私が選択オプションをクリックする方法です: 'labels = [必須/望ましいオプションのリスト/単一のオプション]; element = driver.find_element_by_id(element_id); element.find_elements_by_tag_name(オプション)のオプションの場合: ラベルのoption.textの場合: option.click(); ' これが役立つかどうかお知らせください。 :) – kev

+0

@YingheChen上記のコードスニペットが理解しにくい場合は、私は私の答えの編集として追加するとうれしいですが教えてください。 – kev

関連する問題