Ich muss einen Dateiupload auf eine Webseite automatisieren, die einige Javascript-Code verwendet. Um dies zu tun, verwende ich Python Selen-Web-Treiber, um auf die Webseite zuzugreifen. Melden Sie sich auf der Webseite an und navigieren Sie, bis die Seite, auf der die Datei hochgeladen werden soll, einwandfrei funktioniert, aber dann kann ich nicht herausfinden, wie Sie auf die Schaltfläche "Datei auswählen" klicken.Laden Sie eine Datei mit Python Selenium in Javascript Web
Dies ist, wie der Code aussieht, bis der Punkt, an dem ich die Datei laden soll:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import ui
from selenium.webdriver.support.wait import WebDriverWait
def page_is_loaded(driver):
return driver.find_element_by_tag_name("body") != None
base_url = 'https://www.xxxxxx.es/yyyyy/login.do?method=login'
driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver')
driver.get(base_url)
wait = ui.WebDriverWait(driver, 10)
wait.until(page_is_loaded)
username = driver.find_element_by_name('j_username')
username.send_keys('XXX')
password = driver.find_element_by_name('j_password')
password.send_keys('YYY')
accept = driver.find_element_by_name('aceptar')
accept.click()
# 'Carga de ficheros'
driver.find_element_by_xpath('//*[@id="cMI_1"]').click();
driver.find_element_by_xpath('//*[@id="cMI_1_1"]').click();
Dies ist, wie die Web-Seite wie folgt aussieht:
Und das ist, wie die Seite aussieht wie wenn es Inspektion:
ich viele Methoden versucht haben, zu ‚Klick‘ die ‚wählen sie Datei‘ klicken, ohne Erfolg:
driver.find_element_by_xpath('//*[@id="tablaFormulario"]/tbody/tr[6]/td[2]/input').click
driver.find_element_by_css_selector('tablaFormulario').click()
driver.find_element_by_link_text('fichero').click()
driver.find_element_by_link_text('Choose File').click()
driver.find_element_by_class_name('contCampo').click()
driver.find_elements_by_tag_name('fichero').click()
driver.find_elements_by_tag_name('contCampo').click()
Ich vermute, dass es mit der Tatsache zusammenhängt, dass die Seite mit etwas JavaScript-Code läuft ... Jede Hilfe wird geschätzt!
Danke für Ihre Hilfe @Andersson! Aber die Sache ist, dass ich eine Nachricht bekomme, die besagt, dass dieses Element nicht gefunden werden konnte: 'NoSuchElementException: kein solches Element: Element konnte nicht gefunden werden: {" method ":" xpath "," selector ":" // input [@ type = "file"] "} (Sitzungsinfo: chrome = 55.0.2883.87) (Treiberinfo: chromedriver = 2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320), plattform = Linux 4.4.0-57-generisch x86_64)' Dies ist die Das gleiche Problem hatte ich mit den anderen Methoden, die ich versuchte, Selen konnte die Elemente nicht finden. –
Überprüfen Sie die aktualisierte Antwort. Überprüfen Sie auch, ob Formular nicht innerhalb eines '
Ich habe nicht funktioniert, befindet sich die Tabelle innerhalb einer '