2016-07-05 40 views
-2

我遇到了一個棘手的問題,試圖報廢ajax填充網站。經過很多努力,我已經能夠自動化我的瀏覽器從網站下載一個文件。不幸的是,手頭的任務需要我離開主頁才能到達文件。我的問題是,在獲取驅動程序對象列表後,一旦離開頁面,它就會過時。我試圖通過將索引存儲爲整數來解決此問題。這裏是我下面的代碼:如何保持硒離網驅動程序對象在離開頁面後變得陳舊?

while loop: 
    open_folders() 
    drFolder = driver.find_elements_by_xpath("//*[@data-rights='16777215']") 
    drSurveys = driver.find_elements_by_xpath("//*[@data-rights='16711680']") 
    inner_loop(create_list(drFolder, drSurveys), accum) 
    accum += 1 

回答

0

我能夠通過使用地圖功能來更新列表來解決這個問題:

while loop: 
    open_folders() 
    drSurveys = driver.find_elements_by_xpath("//*[@data-rights='16711680']") 
    elecontainer = driver.find_elements_by_xpath("//*[@data-rights='16711680']") 
    map(lambda: driver.find_elements_by_xpath("//*[@data-rights='16711680']"), elecontainer) 
    if elecontainer[accum].is_displayed(): 
     ActionChains(driver).move_to_element(elecontainer[accum]).click(elecontainer[accum]).perform() 
     if check_jquery(): 
      inner_loop() 
    accum += 1 

我沒有用匿名函數或地圖功能的經驗。 我後來回去更新它,像這樣:

while loop: 

    open_folders() 

    elecontainer = driver.find_elements_by_css_selector("a[data-rights^='167']") 

    map(lambda: driver.find_elements_by_css_selector("a[data-rights^='167']"), elecontainer) 

    if elecontainer[accum].is_displayed(): 

     ActionChains(driver).move_to_element(elecontainer[accum]).click(elecontainer[accum]).perform() 

     if check_jquery(): 

      urlstore = driver.current_url 

      inner_loop() 

    accum += 1 
相關問題