mig*_*mba 42 attachment capybara
我有一个文件字段,它有opacity: 0
一个假的按钮.它是一种常见的css技术,用于伪造一种在不同浏览器中一致显示的"上传按钮".
Capybara不允许我打电话attach_file
给那个输入.错误是Selenium::WebDriver::Error::ElementNotVisibleError: Element is not currently visible and so may not be interacted with
.
有谁知道强迫水豚与隐形元素互动的方法吗?
答案仍然没有答案,但我找到了解决方法.没有什么是智能的,只需用简单的脚本使元素可见即可
page.execute_script %Q{
$('#photos').css({opacity: 1, transform: 'none'});
}
Run Code Online (Sandbox Code Playgroud)
我发布它作为记录.
Vij*_*han 72
您可以使用visible: false
Capybara中的属性与隐藏元素进行交互.
如果要单击隐藏元素使用:
find("#photos", visible: false).click
Run Code Online (Sandbox Code Playgroud)
不要click_button('#photo')
直接使用
use*_*833 19
Capybara的作者建议Capybara.ignore_hidden_elements
在需要查看隐形元素之前立即进行设置,然后重置它:
Capybara.ignore_hidden_elements = false
click_button 'my invisible button'
Capybara.ignore_hidden_elements = true
Run Code Online (Sandbox Code Playgroud)
通常,在使用Capybara时,与不可见元素进行交互是不可能的(您可以使用visible: false/hidden
大多数查找器中的选项找到它们,但实际上并未对其执行任何操作)。但是,文件输入是一种特殊情况,因为隐藏元素非常普遍,并且由于安全限制,没有其他方法可以通过与页面可见元素进行交互来实际添加文件。因此,attach_file
有一个make_visible
选项可用于使Capybara使该元素可见,附加该文件,然后将CSS重置为原始设置。
attach_file('photos', file_path, make_visible: true)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28721 次 |
最近记录: |