Я имею дело с разбиением на страницы и хотел бы, чтобы мой сценарий очистил таблицу, щелкнул по следующей кнопке, очистил следующую таблицу и нажимал на следующую до тех пор, пока она перестала нажиматься.
Единственная разница в интерактивности vs non-clickable, кажется, закрывающий тег disabled>
.
Моя идея состояла в том, чтобы создать некоторое время l oop и нажимать на кнопку, пока не исчезнет отключенный тег, но я не уверен, как получить этот тег в первую очередь.
Даже если кнопка отключена, Selenium не выдает ошибку «Элемент не взаимодействует», поэтому я не думаю, что смогу go по этому маршруту.
airport_list = []
fees_list = []
airports = ["https://www.aopa.org/destinations/business/13035#fees", "https://www.aopa.org/destinations/business/35555#fees"]
for a in airports:
driver.get(a)
time.sleep(3)
# Click dropdown
driver.find_element_by_xpath('//div[@class = "mat-select-arrow"]').click()
time.sleep(1)
# Select "All aircraft"
driver.find_elements_by_xpath('//span[@class = "mat-option-text"]')[8].click()
time.sleep(2)
try:
# Check if fees are available
driver.find_element_by_xpath('//mat-row[@class = "mat-row ng-star-inserted"]')
#Scrape each row
fees_table = driver.find_elements_by_xpath('//mat-row[@class = "mat-row ng-star-inserted"]')
for fee in fees_table:
fees_list.append(fee.text)
airport_list.append(a)
#Click on "Next" button
driver.find_elements_by_xpath('//span[@class = "mat-button-wrapper"]')[4].click()
time.sleep(2)
except:
fees_list.append("This location has not disclosed fees or does not charge fees.")
airport_list.append(a)
driver.close()