Rspec 使用基于时间的ID从动态添加的JS capybara中选择一个选项

Rspec 使用基于时间的ID从动态添加的JS capybara中选择一个选项,rspec,capybara,Rspec,Capybara,我正在使用基于Railscasts的js代码向我的页面添加新课程 当使用Rspec和Capybara进行测试时,如何从动态生成的选择菜单中选择一个选项,该菜单具有基于时间的唯一ID 我的想法是,最终确定所有的选择菜单,然后抓取最后一个,但没有任何东西能与我一起点击 Rspec代码: click_link "Edit " click_link "Add Another Lesson" #this then uses JS to put another select

我正在使用基于Railscasts的js代码向我的页面添加新课程

当使用Rspec和Capybara进行测试时,如何从动态生成的选择菜单中选择一个选项,该菜单具有基于时间的唯一ID

我的想法是,最终确定所有的选择菜单,然后抓取最后一个,但没有任何东西能与我一起点击

Rspec代码:

        click_link "Edit "
        click_link "Add Another Lesson" #this then uses JS to put another select menu on the screen.
        select("Lesson 2", from: "#{ideally it would find the last select tag here}") #this is what i don't know how to find.
我知道有很多但不确定如何使用Xpath查找最后一个select标记。

只能通过名称、id或标签文本查找元素。你没有,所以你应该用。我不知道有哪种CSS或XPath选择器会选择整个页面上的最后一个元素,所以我认为您可以使用:

全部“选择”。最后。查找:选项,“第2课”。选择\u选项

查找所有选择,但仅使用最后一个可能看起来有点难看。最好在另一个元素中选择它:

find(some_selector).find('select').find(:option, 'Lesson 2').select_option

老兄帮了我大忙,谢谢@Andrey

对我有效的是,对于文本字段输入:

全部:css,'.hearter'[0]。设置为“了不起的人”

对于选择标记:


all:css,'.js select'[0].select1 1是我的值

如果我记得它实际上没有在生成的选择器中选择选项。这周晚些时候我就能开始了。谢谢。选择“真棒男人”,从:“.Heater”是我的工作。