在我正在进行的项目中,我们有很多不透明度为0的文件输入字段。
如果我的输入字段为id
file_upload
和opacity:0
,
然后@driver.find_element(id: 'file-upload').send_keys full_file_path
会给我一个Selenium::WebDriver::Error::ElementNotVisibleError
如何成功将文件附加到此输入?
我正在使用selenium-webdriver for Ruby
注意: 我知道这可能与Capybara有关,但使用Capybara目前在我的项目中不是一个选项。
答案 0 :(得分:0)
其中一个选项是使用execute_script
代替find_element.send_keys
:
full_file_path = "./path/'
script = <<-JS
document.getElementById("#file-upload").val("#{full_file_path}")
JS
@driver.execute_script script
答案 1 :(得分:0)
Java代码运行正常。
WebDriver driver = new ChromeDriver();
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.querySelector(\"input[id*='upload']\").style.opacity='1'");
driver.findElement(By.cssSelector("input[id*='upload']")).sendkeys(filepath);