【问题标题】:How to fill timepicker field with capybara如何用水豚填充时间选择器字段
【发布时间】:2014-06-27 12:12:53
【问题描述】:

我是 capybara 的新手,我的文本字段有一些问题,Capybara 找不到该字段。

我需要创建自动测试,其中一个必须填写随时更改的字段(id 和名称更改,它们是这样的:id="patternDailyStart_146d7547140" 并且这个数字总是不同的)。

Html 部分如下所示:

    <div class="timepicker">
    <input value="" id="patternDailyStart_146d7547140" 
        name="patternDailyStart_146d7547140" 
        class="timepicker-input patternDailyStart hasDatepicker" 
        type="text">
    <img class="ui-datepicker-trigger"      
        src="/mpromoter/assets/4716a6a0a357181/app/components/timefield/clock.png" 
        alt="..." 
        title="...">
    </div>

这是时间选择字段。问题是水豚找不到该领域..但是我试图找到它来填充。

当我试图找到这个 xpath 时,它被找到了,但是当我想用 time($starttime=17:00) 填充它时,它说那个元素没有找到或者它不存在。

找到了这些 xpath:

page.has_xpath?('//tbody/tr/div/input[contains(., "patternDailyStart")]')
page.has_xpath?(:xpath, "//*[@class='timepicker-input patternDailyStart hasDatepicker']")

我试着这样填写:

And(/^fill up the fields$/) do
field = find("//*[@class='timepicker-input patternDailyStart hasDatepicker'")
field.set $starttime
end

像这样:

fill_in('timepicker-input.patternDailyStart.hasDatepicker', :with => $starttime)

像这样:

within(:xpath,'//tbody/tr/div/input[contains(., "patternDailyStart")]'){ fill_in("#patternDailyStart", with: $starttime)}

还有许多其他方法,但仍然没有填充这些字段..

所以我正在寻求帮助。我必须做什么,有什么建议吗?

谢谢... :)

【问题讨论】:

    标签: xpath capybara contains timepicker


    【解决方案1】:

    我认为最简单的方法是通过其 'patternDailyStart' 类定位输入:

    find(:css, '.patternDailyStart').set($starttime)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多