Как исправить "Элемент не прикреплен к документу страницы" python и селен - PullRequest
0 голосов
/ 13 июля 2020

Работа над сценарием для загрузки электронной таблицы из https://www.barchart.com/options/unusual-activity/stocks

После входа в систему I go для загрузки электронной таблицы с помощью метко отмеченной кнопки «Загрузить», но это не так. t работает, во многих случаях он закрывает окно браузера, и я получаю исключение «Элемент не прикреплен к документу страницы».

Вот мой исходный код:

def dataDownload(): # Downloads the unusual options activity spreadsheet

    # Sets spider to use ChromeDriver

    driver = webdriver.Chrome('./lib/chromedriver.exe')
    driver.get('https://www.barchart.com/options/unusual-activity/stocks')

    # Logs into Barchart

    config = configparser.ConfigParser()
    config.read("./lib/config.txt")
    username = config.get('configuration','username')
    password = config.get('configuration','password')

    openlogin = driver.find_element_by_xpath("//a[contains(text(),'Log In')]")
    driver.execute_script("arguments[0].click();", openlogin)
    login = driver.find_element_by_xpath("//input[@placeholder='Login with email']")
    login.send_keys(username, Keys.TAB, password, Keys.ENTER)

    # Downloads spreadsheet
    element = driver.find_element_by_xpath("//span[contains(text(),'download')]")
    element.click()


dataDownload()

С Проблемная область:

# Downloads spreadsheet
    element = driver.find_element_by_xpath("//span[contains(text(),'download')]")
    element.click()

Я пробовал много вещей, чтобы исправить это, включая:

driver.execute_script()
---------------------------------
ignored_exceptions=(NoSuchElementException,StaleElementReferenceException,)
element = WebDriverWait(driver, 2,ignored_exceptions=ignored_exceptions)\
                    .until(expected_conditions.presence_of_element_located((By.XPATH, "//span[contains(text(),'download')]")))
element.click()
---------------------------------
ignored_exceptions=(NoSuchElementException,StaleElementReferenceException,)
element = WebDriverWait(driver, 2,ignored_exceptions=ignored_exceptions)\
                    .until(expected_conditions.presence_of_element_located((By.XPATH, "//span[contains(text(),'download')]")))
driver.execute_script("arguments[0].click();", element)

и различные способы ожидания загрузки страницы. Ничего не получилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...