0

SitePrism 一直在为我的自动化项目工作,直到我需要处理一个特定的 ReactModal 对象,该对象可以与直接 capybara find 命令一起使用,但不能在 SitePrism 中使用。我真的很感激这个问题的任何帮助。

在 pry 调试器中调用 find 会起作用

pry(#RSpec::Core::ExampleGroup::Nested_1)> 找到“div:nth-child(18) > div > div > div”

=> # "div:nth-child(18) > div > div > div"

pry(#RSpec::Core::ExampleGroup::Nested_1)> find find "div:nth-child(18) > div > div > div"

=> # "div:nth-child(18) > div > div > div"

但是调用 SitePrism 对象 @videos_page.clipping 会导致错误

pry(#RSpec::Core::ExampleGroup::Nested_1)>@videos_page.clipper ArgumentError:来自 /Users/kpham/.rvm/gems/ruby-2.3.0@social 的参数数量错误(给定 2,预期为 0) /gems/site_prism-2.9/lib/site_prism/element_container.rb:28:in 初始化'

pry(#RSpec::Core::ExampleGroup::Nested_1)>@videos_page.clipping ArgumentError:来自 /Users/kpham/.rvm/gems/ruby-2.3.0@social 的参数数量错误(给定 2,预期为 0) /gems/site_prism-2.9/lib/site_prism/element_container.rb:28:ininitialize'

class ClippingDialog <SitePrism::Page
    element :header, ".bc-modal-header h3"
    element :close, ".bc-close"
    section :body, ClippingDialogBody, ".bc-modal-body"
    section :footer, ClippingDialogFooter, ".bc-modal-footer"
end

class VideosPage <SitePrism::Page
    set_url "/videos"
    section :clipper, ClippingDialog, ".bc-dialog.bc-dialog-clipping"
    section :clipping, ClippingDialog, "div:nth-child(18) > div > div > div"
end

<div class="ReactModalPortal">
    <div class="ReactModal__Overlay ReactModal__Overlay--after-open bc-modal bc-modal-clipping" data-reactid=".2">
        <div class="ReactModal__Content ReactModal__Content--after-open bc-modal-content bc-modal-content-clipping" tabindex="-1" data-reactid=".2.0">
            <div role="dialog" class="bc-dialog bc-dialog-clipping" data-reactid=".2.0.0">
4

1 回答 1

0

发现我的部分定义存在问题,剪切和粘贴错误。

class ClippingDialog <SitePrism::Page 

应该:

class ClippingDialog <SitePrism::Section

我的问题解决了。

于 2016-11-30T15:39:21.447 回答