使用Python和JavaScript通过Selenium使WebElement可见

The*_*gar 5 javascript css python selenium selenium-webdriver

我正在尝试通过硒上传png。我的问题是,我需要使用的输入对硒不可见,但对用户不可见。在Selenium的FAQ中,他们告诉我像下面这样使用JavascriptExcecutor:

((JavascriptExecutor)driver).executeScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; arguments[0].style.opacity = 1", fileUploadElement);
Run Code Online (Sandbox Code Playgroud)

我过去在C#上使用了它,并且可以正常工作,但是现在我很难将其转换为python。我会使用该document.getElementByName()函数,但是输入没有名称,并且页面上有多个。解决该问题的最佳方法是什么。我已经试过了

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
Run Code Online (Sandbox Code Playgroud)

但这也没用,我收到语法错误

ale*_*cxe 6

execute_script()驱动程序实例上有一个方法,参数以类似于 C# 的方式传递给它JavascriptExecutor

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)
Run Code Online (Sandbox Code Playgroud)