J'essaie de télécharger un png via le sélénium. Mon problème est que l'entrée que je dois utiliser, est invisible au sélénium, mais pas à l'utilisateur. Dans la FAQ de Selenium, ils m'ont dit d'utiliser JavascriptExececutor comme:
((JavascriptExecutor)driver).executeScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; arguments[0].style.opacity = 1", fileUploadElement);
J'ai utilisé cela avec C # dans le passé, et cela a fonctionné, mais maintenant je me moque de convertir cet usage en python. J'utiliserais la fonction document.getElementByName()
, mais l'entrée n'a pas de nom et il y en a plus d'une sur la page. Quelle est la meilleure façon de résoudre ce problème. J'ai déjà essayé
icon = element.find_element_by_css_selector("input") script_befehl = icon+".style.visibility = 'visible'; "+icon+".style.height = '1px'; "+icon+".style.width = '1px'; "+icon+".style.opacity = 1
Mais cela ne fonctionnait pas non plus, j'avais une erreur de syntaxe
Il existe une méthode execute_script()
sur l'instance du pilote, les arguments lui sont transmis d'une manière similaire à celle du JavascriptExecutor
de C #:
icon = element.find_element_by_css_selector("input") driver.execute_script("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; arguments[0].style.opacity = 1", icon)