2016-08-12 7 views
1

Ich verwende Selen-Python mit Chrom-Treiber.Python Selen Calling versteckte Datei Eingabe

In einer Webseite, die https://web.whatsapp.com/ ist, versuche ich, eine Datei mit send_keys() an eine Dateityp-Eingabe zu senden.

Das Problem ist, dass Eingabeelement nur im Inspektor sichtbar ist, wenn Sie eine Datei auf der Webseite ablegen. Wenn Sie dieses Menü schließen (ich meine nicht natives Menü) verschwindet das Element aus dem Inspektor.

Wie kann ich dieses Element aufrufen, wenn das Element nicht angezeigt wird?

Und Element scheint wie folgt aus:

xpath='//*[@id="app"]/div/div[3]/div[1]/span[2]/span/div/div[2]/input' 

<input type="file" accept="image/*,video/*" multiple="" style="display: none;"> 

I

versucht
driver.execute_script("document.getElementById('parent_id').style.display='block';") 

driver.execute_script("document.getElementByXpath('Xpath').sendKeys('file');") 

Aber keiner von ihnen arbeitete.

Antwort

0

Wenn Sie mit Dateieingabeelement wat zu arbeiten, dann versuchen Sie es sichtbar es statt zu machen ist übergeordnetes Element, wie unten:

xpath = '//*[@id="app"]/div/div[3]/div[1]/span[2]/span/div/div[2]/input' 

file = driver.find_element_by_xpath(xpath) 

file = driver.execute_script("arguments[0].style.display='block'; return arguments[0];", file) 

file.seng_keys("file") 
+0

Ich habe NoSuchElementException.Selenium nicht das Element gefunden. – kgb26

+0

Element ist nicht sichtbar, bis Sie eine Datei auf der Webseite löschen. – kgb26

+0

@ .Saurabh danke, aber immer noch kann es das Element nicht finden. – kgb26