Citat:
Nedanstående kod (där iteratorn i används) ligger ju utanför loopen, så det verkar inte som att xpath uppdateras, därav står det still.
I övrigt, ta för vana att skriva
Kod:
xpath = "//div[@class='dataTables_paginate paging_simple_numbers']/span/a[text()=" + str(i) + "]"
I övrigt, ta för vana att skriva
Kod:
somi = i + 1
Kod:
i += 1
Inte bara det; han har ju satt while loopen att snurra när find.drive.... är True samtidigt som han sedan sätter if-satsen på exakt samma kondition. blir while False blir också If-False, eller skall jag skriva; när if blir False så är ju while redan False.
Bör väl vara:
Kod:
i= 2
xpath = "//div[@class='dataTables_paginate paging_simple_numbers']/span/a[text()=" + str(i) + "]"
while driver.find_element_by_xpath(xpath):
driver.find_element_by_xpath(xpath).click()
i = i + 1
xpath = "//div[@class='dataTables_paginate paging_simple_numbers']/span/a[text()=" + str(i) + "]"
time.sleep(5)
Varför två xpath? Jo för att du måste initiera xpath utanför loopen vid start. Annars kommer inte while att köra och om den körs kommer hela programmet att sprängas då driver.find_element_by_xpath(xpath) inte har någon xpath, variabeln finns ej. Så while måste ju köra driver.find_element_by_xpath(xpath) innan loopen och sedan uppdatera xpath sist innanför loopen. Så nu uppdaterar xpath med den nya i för att köras igen vid nästa while-iteration.
(i det här fallet är i= i+1 bättre)