2016-07-05 47 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 
相关问题