我正在撰寫一個測驗以通過貨幣注冊的測驗流程。注冊的附加組件出現在不同的流程步驟中。我的目標是能夠選擇附加影子根中的復選框,這樣我就可以進行下一步了。我試圖關注的影子根中的元素似乎可以成為目標,它們是列舉器、陣列和哈希。
我需要幫助的是單擊復選框,但 .click 方法不適用于我定位的元素。我沒有為 .select 回傳錯誤,但它似乎也沒有做任何事情。
當我逐步瀏覽代碼時,我認為我的目標是正確的以復選框為中心的元素。但我看到的所有元素似乎都不是可以“點擊”或與之互動的類。到目前為止我已經嘗試過:
sales_channels_reg.execute_script("return arguments[0].shadowRoot", sales_channels_reg.regsaver_section.regsaver_testtest.find("#sales-channels-element", visible: false)).find(css: "label[for='addToCart--false']")
Returns:
#<Enumerator: {"shadow-6066-11e4-a52e-4f735466cecf"=>"416aad9c-c512-496d-93c3-91c17ec6e27d"}:find(css: label[for='addToCart--false'])>
- sales_channels_reg.execute_script("return arguments[0].shadowRoot", sales_channels_reg.regsaver_section.regsaver_testtest.find("#sales-channels-element", visible: false)).find(id: "addToCart--false")
Returns
#<Enumerator: {"shadow-6066-11e4-a52e-4f735466cecf"=>"416aad9c-c512-496d-93c3-91c17ec6e27d"}:find(id: addToCart--false)>
- sales_channels_reg.execute_script("return arguments[0].shadowRoot", sales_channels_reg.regsaver_section.regsaver_testtest.find("#sales-channels-element", visible: false))
Returns
{"shadow-6066-11e4-a52e-4f735466cecf"=>"416aad9c-c512-496d-93c3-91c17ec6e27d"}
sales_channels_reg.execute_script("return arguments[0].shadowRoot", sales_channels_reg.regsaver_section.regsaver_testtest.find("#sales-channels-element", visible: false)).class
Returns
Hash
sales_channels_reg.execute_script("return arguments[0].shadowRoot", sales_channels_reg.regsaver_section.regsaver_testtest.find("#sales-channels-element", visible: false)).find(id: "addToCart--false").each do |c| puts c, c.class end
Returns
shadow-6066-11e4-a52e-4f735466cecf
416aad9c-c512-496d-93c3-91c17ec6e27d
Array
*** NoMethodError Exception: undefined method `call' for {:id=>"addToCart--false"}:Hash
(byebug) sales_channels_reg.execute_script("return arguments[0].shadowRoot", sales_channels_reg.regsaver_section.regsaver_testtest.find("#sales-channels-element", visible: false)).find(id: "addToCart--false", :visible => false).click
*** NoMethodError Exception: undefined method `click' for #<Enumerator:0x00007fbeb9195558>
nil
我正在寫的代碼
-第一個檔案-
describe "Showing 4 max add-ons in reg flow", type: :feature, service: "sales_channels1" do
context "yadda yadda" do
subject(:sales_channels_reg) { SalesChannelsRegGenerals.new }
subject(:se_signup_page) { SELogin.new }
# subject(:gen_reg) { RegistrationHelper.new }
let(:form_number) { "848624247" }
it "in test flow does thing" do
couple of other steps first
byebug (where I'm at in the code now)
end
end
end
-不同的檔案-
require "./spec/page_models/sales_channels_ncsa_section.rb"
require "./spec/page_models/sales_channels_medsaver_section.rb"
require "./spec/page_models/sales_channels_regsaver_section.rb"
require "./spec/page_models/sales_channels_four_addons_section.rb"
class SalesChannelsRegGenerals < SitePrism::Page
set_url "https://zachpartyka#{SeleniumTest.ngin_site}/register/form/{/form_number}"
section :regsaver_section, RegSaverSection, "div#siteContainer2"
end
-不同的檔案-
class RegSaverSection < SitePrism::Section
element :regsaver_testtest, "#pageContentContainer"
end

uj5u.com熱心網友回復:
這些值都不應該是列舉器、哈希等(除非站點棱鏡真的與 Capybaras 回報搞砸了)。我猜原因是您在execute_script應該使用evaluate_script. execute_script當您期望回傳值時不應該使用,并且不會將結果解包到元素參考中,evaluate_script確實如此。
sales_channels_reg.evaluate_script("arguments[0].shadowRoot", ...)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/410176.html
標籤:
