2017-02-13 2 views
1

Pythonでセレニウムを使用してチェックボックスをオフにしようとしています。しかし、私は、次のエラーメッセージが表示されました:Pythonセレンが目に見えないチェックボックスを選択しています

selenium.common.exceptions.ElementNotVisibleException:
メッセージ:要素が現在表示されていないので、私はどのように疑問に思って

でなければならない相互作用することはできません私はそれを見えるようにする?

このチェックボックスの興味深い部分は、いくつかのJavaScriptが含まれていることです。これがトラブルの原因であるかどうかはわかりません。私は以下の方法を試みたが、同じエラーが発生した。

driver.find_element_by_id("1986 Thru 1990").click() 

または

driver.find_element_by_xpath('//*[@id="1986 Thru 1990"]').click() 

enter image description here

答えて

1

要素が見えるようになるまで待つためにいくつかの時間を追加してください:

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

wait = WebDriverWait(driver, 10) 
element = wait.until(EC.visibility_of_element_located((By.ID,'1986 Thru 1990'))) 
element.click() 

は問題がまだ

+0

感謝を持続した場合、私に教えてくださいあなたの提案イオン。しかし、私はタイムアウト例外 'selenium.common.exceptions.TimeoutException:Message:'があるように見えます。タイムアウト制限を増やすべきですか? –

+0

いいえ。このチェックボックスが最初に表示されているか、下にスクロールして表示するか、マウスポインタを上に移動して表示させる必要があるかどうかを教えてください。 – Andersson

+0

@ tao.hongこれでタイムアウト例外が発生した場合は、 'xpath'で正しい要素を取得していない可能性があります。おそらく目に見えない要素があるかもしれません。いくつかのHTMLを提供すると助けになるかもしれません。 – mrfreester

関連する問題