iverson.z...@gmail.com writes: > ... > I have tried uncountable number of methods (e.g. explicit, implicit wait) but > the stale error still persists as it seems to stays stale as long as it is > staled. > > Have anyone come up with a solution to this and what is the best way to deal > with DOM tree changes. > ... > with open('C:/Python34/email.csv','w') as f: > z=csv.writer(f, delimiter='\t',lineterminator = '\n',) > while True: > row = [] > for link in > driver.find_elements_by_xpath("//*[@id='wrapper']/div[2]/div[2]/div/div[2]/div[1]/div[3]/div[1]/div[2]/div/div[2]/div/div[2]/div/div[position() > = 1 or position() = 2 or position() = 3]"):
The "find_elements_by_xpath" likely gives you a list of elements on the *initial* page. The "for" sets things up that this list is iterated over. > try: > ... > c=driver.find_element_by_id('detail-pagination-next-btn') > ... > c.click() > ... > except StaleElementReferenceException as e: This "click" may change the page which means that you would now be on a page different from the initial page. It is likely that your web access framework contains some form of automatic garbage collection: when you switch to a new page, references to the old page may become stale. This could explain that you sometimes observe a "StaleElementReferenceException". Read the documentation of your web access framework to find out whether you can control stalelifying of elements when you switch a page. If this is impossible, avoid accessing elements of a page once you have switched to a new page. To this end, extract (and store) all relevant information from the page before you switch to a new one and, if necessary, use the extracted information to later restore the previous page state. As you can see from my explanation: your question is much more related to your web access framework than to Python in general. Likely, there is a forum (dedicated to this framework) that can better help you with this question than this general Python list. -- https://mail.python.org/mailman/listinfo/python-list