我遇到了一个棘手的问题,试图废弃一个填充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 :(得分:0)
我可以通过使用map函数更新列表来解决这个问题:
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