1
xml 다운로드 링크가있는 웹 페이지의 모든 하이퍼 링크를 찾아서 루프에서 다운로드하려고합니다. 하이퍼 링크를 클릭 할 때 발생하는 양식이 있으며 다운로드를 진행하려면 채워야합니다. 내가 웹 페이지에서이 XML 파일에 관련된 요소의 가시성에 문제에 직면하고있어,하지만 다음과 같은 오류가 나타납니다 본인은 코드를 첨부했습니다Python Selenium CSS Selector : 요소가 보이지 않습니다.
"selenium.common.exceptions.ElementNotInteractableException: Message: Element is not visible"
을, 어떤 제안이 될 것 수습하기 매우 감사.
import os
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", "F:\Projects\Poli_Map\DatG_Py_Dat")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/xml")
driver = webdriver.Firefox(firefox_profile=fp)
m = 'xml'
driver.get('https://data.gov.in/catalog/variety-wise-daily-market-prices-data-cauliflower')
wait = WebDriverWait(driver, 10)
elem = driver.find_element_by_xpath("//*[@href]")
elem.send_keys("xml")
elem.send_keys(Keys.RETURN)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".list-recent-events li")))
assert m in driver.page_source
for link in elem:
link.click()
class FormPage(object):
def fill_form(self, data):
driver.execute_script("document.getElementById('edit-download-reasons-non-commercial').click()")
driver.execute_script("document.getElementById('edit-reasons-d-rd').click()")
driver.find_element_by_xpath('//input[@name = "name_d"]').send_keys(data['name_d'])
driver.find_element_by_xpath('//input[@name = "mail_d"]').send_keys(data['mail_d'])
return self
def submit(self):
driver.execute_script("document.getElementById('edit-submit').click()")
data = {
'name_d': 'xyz',
'mail_d': '[email protected]',
}
time.sleep(3)
FormPage().fill_form(data).submit()
NarendraR에 대한 응답을 보내 주셔서 감사합니다. 실행 및 첫 번째 다운로드 후 다음 오류가 발생했습니다. selenium.common.exceptions.StaleElementReferenceException : 메시지 : stale : 요소가 더 이상 DOM 또는 페이지가 새로 고침되었습니다. – Cashi