当我想与页面上的元素进行交互时,是否需要.load页面?

时间:2014-11-04 16:31:08

标签: ruby capybara site-prism

我有Selenium / Java背景,第一次使用Ruby / Capybara / Site Prism。

我想创建一个对象,然后在不使用.load方法的情况下与页面上的元素进行交互,但是在单击链接后转到将构成我的对象的页面。

我有一个这样的对象:

require 'site_prism'
require 'capybara'

class OpportunityObject < SitePrism::Page
  element :event_date, "td#00NC0000005hghU_ilecell"
end

我的代码如下所示:

require 'salesforce/objects/Opportunity'
require 'salesforce/salesforce_helper'

describe 'Create Opportunity', type: :feature do

  before :all do
    set_env
  end

  it 'Create Opportunity' do

    login_to_salesforce

    sleep 1

    go_to_opportunities_page

    sleep 1

    #get_random_opportunity.click

    @opportunity = OpportunityObject.new
    puts @opportunity.event_date.text

  end
end

我得到的错误是:

The given selector #00NC0000005hghU_ilecell is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: An invalid or illegal selector was specified

没有像我期望的那样发生OpportunityObject的分配。我希望@opportunity是一个OpportunityObject,可访问的成员是event_date。 @opportunity似乎是一个OpportunityObject,但没有定义任何成员。

我不想加载页面,因为我可能不知道当时的URL是什么。但是,我知道我会在页面上,并希望使用特定的页面元素定义对象。

0 个答案:

没有答案