一尘不染

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

selenium

我正在尝试通过selenium上传png。我的问题是,我需要使用的输入对selenium不可见,但对用户不可见。在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);

过去我在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

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


阅读 316

收藏
2020-06-26

共1个答案

一尘不染

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)
2020-06-26