2016-04-21 16 views
1

セレンを使用してページを再解析することはできますか?私は関数を使用してボタンをクリックすると、JavaScriptが原因でHTMLが変化し、ページを再解析してリフレッシュしないようにしたい。Reparse Page Selenium Webドライバ - Python

get/refreshのメソッドは、私が探しているものではないページをリロードさせます。

答えて

2

実際には正確に「再解析」していません。私が理解していることは、ページ上で行われた変更を検出することです。そのためには、WebDriverWaitと組み込みの予想条件のセット(またはwrite a custom one)を使用して、ページ上でその変更が行われるのを待つ必要があります。

たとえば、ボタンをクリックすると、要素がページに追加されたとします。ここでは、この要素が表示されるまで待つ方法です:それは500ミリ秒ごと(デフォルトでは)期待される条件の状態をチェックまで10秒待ちます

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

# ... 

button.click() 

wait = WebDriverWait(driver, 10) 
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#id-of-the-added-element"))) 

# now the page is "re-parsed" 
print(driver.page_source)