Ruby 如果页面上的css元素为display:none,如何查找该元素?
我正在用Ruby进行自动测试 我正在尝试编写一个脚本,用Ruby 如果页面上的css元素为display:none,如何查找该元素?,ruby,selenium,testing,rspec,Ruby,Selenium,Testing,Rspec,我正在用Ruby进行自动测试 我正在尝试编写一个脚本,用display:none(仅在移动表单中可见)查找id,然后单击它 这是我的密码: def open_menu page.find[:css, "a[id='mobile-nav-link']", visible: false].click end 这给了我一个错误: Selenium::WebDriver::Error::InvalidSelectorError: invalid selector: No select
display:none
(仅在移动表单中可见)查找id,然后单击它
这是我的密码:
def open_menu
page.find[:css, "a[id='mobile-nav-link']", visible: false].click
end
这给了我一个错误:
Selenium::WebDriver::Error::InvalidSelectorError:
invalid selector: No selector specified
Selenium仅以用户的方式与元素交互 如果该链接仅在移动设备中可见,我建议使用以下方法之一
def open_menu
elem = page.find[:css, "a[id='mobile-nav-link']", visible: false]
js = "arguments[0].style.height='auto' arguments[0].style.visibility='visible';"
driver.execute_script(js , elem)
page.find[:css, "a[id='mobile-nav-link']", visible: true].click
end
我并不完全熟悉Ruby语法,所以我不能保证它可以复制/粘贴。快速搜索会发现类似的代码使用圆括号,而不是方括号。即:
def open_menu
page.find(:css, "a[id='mobile-nav-link']", visible: false).click
end
它在page.find上失败。给我一个错误:'Failure/error:elem=page.find[:css,“a[id='mobile-nav-link']”,visible:false]Selenium::WebDriver::error::InvalidSelectorError:无效选择器:未指定选择器'是否使用Capybara?你确定方括号是正确的吗?快速搜索会发现类似的代码使用圆括号,而不是方括号。例如,
page.find(:css,“a[id='mobile-nav-link']”,可见:false)。单击谢谢!就这么简单!太好了,很高兴这有帮助!我把它作为答案贴了出来。