我知道有很多这类问题,但我尝试了一些没有运气的解决方案。
以下是下拉列表的来源:
<select style="display: none;" name="Select_Company" id="Select_Company" class="company-list-select">
然后下面只是一堆正常的选项值:IE:
<option value="2">Generic Company</option>
(当然这是重复的)。
所以这就是我尝试过的:
select('GenericCompany', :from => 'Select_Company')
select('Select_Company')select('Generic Company', :from => 'Select_Company')
我也试过(我想这不起作用,因为“请选择一家公司”文本在技术上是一个选项:
select 'ACME', from: "Please Select a Company"
所有这些都导致无法找到Element错误。有任何想法吗?我不确定该尝试什么。
这是使用Capybara和Rspec,其余代码很好,因为它可以在这里工作(我们从下拉列表中选择)。我能想到的唯一奇怪的事情(我没有写这个网站)是在选择了下拉类之后:
<div id="Select_Company_chosen" title="" style="width: 100%;" class="chosen-container chosen-container-single"><a class="chosen-single" tabindex="-1"><span>Please Select a Company</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input autocomplete="off" type="text"></div><ul class="chosen-results"><li data-option-array-index="0" style="" class="active-result result-selected">Please Select a Company</li><li data-option-array-index="1" style="" class="active-result">
答案 0 :(得分:2)
查看你的选择它有“style = display:none”,这表示它在页面上不可见。我假设它已经被一个JS驱动的小部件替换在页面上,你的最后一行似乎显示出来了。因此,您不能只使用select(它只适用于真实的可见&lt; select&gt;元素),并且需要复制用户将要执行的操作。我不确定你正在使用的小部件是什么,但通常点击小部件,这使得ul可见,然后点击你想要的可见li - 类似
page.find('.chosen-drop').click
page.find('li', text: 'the text of the item to select').click