Я использую офисную систему quip
Я хочу использовать селен для экспорта всей документации. Обнаружено много проблем.
1) время ожидания, я использую только time.sleep, частоесть проблемы
2) Чтобы загрузить документ, я обнаружил много документов, которые необходимо прокрутить вниз

Как эта папка содержит много документов,вам нужно прокрутить вниз, чтобы получить href
3) Поскольку это папка, созданная человеком, может быть новая папка в папке и другая папка в новом файле.
Яновичок, пожалуйста, расскажите мне как можно больше.
В коде указаны тестовая учетная запись и пароль.
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
from selenium.webdriver import ActionChains
import time
# Configuration information
email = "187069474@qq.com"
password = "Huangbo1019@"
def work_on():
driver = webdriver.Chrome('drivers/chromedriver72.exe')
index_url = "https://quip.com/"
driver.get(url=index_url)
def get_docs(docs):
for doc in docs:
driver.get(doc)
time.sleep(2)
driver.find_element_by_xpath('//*[@id="app"]/div/div/div/div[3]/div[1]/div[1]/div[1]/div[2]/button[1]').click() # select document
time.sleep(2)
ele = driver.find_element_by_xpath('//div[@class="parts-menu-label" and text()="Export"]') # Determine the position of the element
actions = ActionChains(driver)
actions.move_to_element(ele).perform()
time.sleep(2)
html = driver.find_element_by_xpath('//div[@class="parts-menu-label" and text()="HTML"]')
actions.move_to_element(html).click(html).perform()
time.sleep(5)
time.sleep(1)
driver.find_element_by_xpath('//*[@id="header-nav-collapse"]/ul/li[9]/a').click() # click login
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/form/div/input').send_keys(email) # input email
driver.find_element_by_xpath('//*[@id="email-submit"]').click()
time.sleep(1)
driver.find_element_by_xpath('/html/body/div/div/form/div/input[2]').send_keys(password) # input password
driver.find_element_by_xpath('/html/body/div/div/form/button').click()
time.sleep(2)
driver.find_element_by_xpath('//*[@id="app"]/div/div/div/div[1]/div/div/div[3]/div[1]/a[2]/div/div').click() # click file
time.sleep(5)
driver.find_element_by_xpath('//*[@id="app"]/div/div/div/div[3]/div[2]/div/div/div/div[1]/div[2]/div[1]/a').click() # select test
time.sleep(2)
docs = driver.find_elements_by_class_name('folder-document-thumbnail')
docs = [x.get_attribute('href') for x in docs]
folders = driver.find_elements_by_class_name('folder-thumbnail')
folders = [x.get_attribute('href') for x in folders]
get_docs(docs)
for folder in folders:
driver.get(folder)
time.sleep(2)
docs = driver.find_elements_by_class_name('folder-document-thumbnail')
docs = [x.get_attribute('href') for x in docs]
get_docs(docs)
time.sleep(5)
driver.close()
if __name__ == '__main__':
work_on()
Текущий код может получить только папку каталога второго уровня.
Невозможно захватить все ссылки на документы, так как мышь нельзя провести пальцем вниз.
Время ожидания очень болезненное, иногда сеть работает неправильно, выдает ошибку
Предоставленный квипэто просто тесты, но тздесь будут тысячи документов в процессе производства.
Я надеюсь, кто может улучшить этот код.Это очень полезно для меня.Я искренне благодарен.