Below are all the moving parts... 

implementation:

require 'rubygems'
require_relative 'WatirToolbox'

# Create a new WatirToolbox object
toolbox = WatirToolbox.new

# Initialize the browser using the toolbox
browser = toolbox.init

# Tell the toolbox to navigate to "prod"
browser = toolbox.navigateTo(browser, "prod")

# Tell the toolbox to login as inputUsernameHere and click the contributor 
site
browser = toolbox.loginAs(browser, "inputUsernameHere", 
"inputPasswordHere", "Contributor")

# Tell the toolbox to create new content of the type Article
browser = toolbox.createNewContent(browser, "Article")

# Tell the toolbox to check in the asset with a comment of 'Test Publish'
#browser = toolbox.checkinAsset(browser, 'Test Publish') # *fails on this 
line*

Definitions:
def init()
browser = Watir::Browser.new
return browser
end

def navigateTo(browser, env)
case env.upcase
when "PROD"
  browser.goto "test.com"
else
  puts "You passed in #{env} -- I have no idea what to do with that."
  puts "Valid parameters are:"
  puts "Prod; Rest to be determined"
end
return browser
end

def loginAs(browser, username, password, appID)
browser.text_field(:name => 'username').set username
sleep 1
browser.text_field(:name => 'password').set password
sleep 1
browser.form(:id, 'fm1').submit
sleep 1
browser.text_field(:class => 'dijitInputInner').wait_until_present
browser.text_field(:class => 'dijitInputInner').set "News\n"

sleep 1
begin
browser.div(:xpath, '//*[@id="appBar"]').when_present.focus
browser.div(:xpath, '//*[@id="appBar"]').div.div.link(:title, 
appID).when_present.fire_event("onmousedown")
browser.div(:xpath, '//*[@id="appBar"]').div.div.link(:title, 
appID).when_present.fire_event("onmouseup")
rescue => e
p e.message
p e.backtrace
puts "appID #{appID} may not be a valid input. Please review WatirToolbox 
documentation for valid input for this field."
end
return browser
end

def createNewContent(browser, type)
sleep 5
#Click on Content
until browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').frame(:id,
 
'contentPane_view-3').text_field(:name => 'flexassets:name').present?
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').div(:text,
 
'Content').wait_until_present
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').div(:text,
 
'Content').hover
sleep 1

#Click on New
if browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').td(:text,
 
'New').present?
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').td(:text,
 
'New').hover
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').td(:text,
 
'New').click
sleep 1
end

#Click on New #{type} where type is a valid WCM Asset type
begin
if browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').td(:text,
 
"New #{type}").present?
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').td(:text,
 
"New #{type}").hover
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').td(:text,
 
"New #{type}").click
end
rescue => e
p e.message
p e.backtrace
puts "type #{type} may not be a valid input. Please review WatirToolbox 
documentation for valid input for this field."
end
end
if browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').frame(:id,
 
'contentPane_view-3').text_field(:name => 'flexassets:name').present?
return browser
else
createNewContent(browser, type)
end
end

def checkinAsset(browser, comment)
sleep 10
#Wait for the frame containing the checkin button to load
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').wait_until_present
 
#*Fails here*
browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').div(:id,
 
'edit').wait_until_present

#Click checkin icon
checkin = browser.frame(:src, 
'../../ContentServer?pagename=fatwire/wem/integration/processWemRequest&application=uc1').span(:xpath,
 
"//div[@id='edit']/span[position()=7]")
checkin.click
end

On Wednesday, January 15, 2014 11:05:10 AM UTC-5, Dan wrote:
>
> Can you show some of that code?
>
> On Wednesday, January 15, 2014 9:33:10 AM UTC-5, Matt Caldwell wrote:
>>
>> I suppose that is ambiguous -- sorry about that. It is a Watir::Browser 
>> object, it has been instantiated and has been used in lines preceding that 
>> line that are also referencing frames.
>>
>> On Wednesday, January 15, 2014 9:25:03 AM UTC-5, Dan wrote:
>>>
>>> What are you passing into the method?
>>>
>>> On Wednesday, January 15, 2014 7:57:35 AM UTC-5, Matt Caldwell wrote:
>>>>
>>>> Update/clarification. I am using Firefox 17 as my base for this and 
>>>> Watir 1.9.3.
>>>>
>>>> On Tuesday, January 14, 2014 2:27:05 PM UTC-5, Matt Caldwell wrote:
>>>>>
>>>>> Hello all,
>>>>>
>>>>> I have been struggling with this issue and was hoping to get some 
>>>>> insight. I have a method in a helper class that I wrote that is using 
>>>>> code 
>>>>> that has worked in the past that is no longer working.
>>>>>
>>>>> def checkinAndApproveAsset(browser, comment)
>>>>> browser.frame(:src, '../../pageSourcePath').wait_until_present  # This 
>>>>> line throws "Undefined Method 'frame' for []:Array (NoMethodError)"
>>>>> #.
>>>>> #. additional irrelevant code
>>>>> #.
>>>>> return browser
>>>>> end
>>>>>
>>>>> The method is called by the following method.
>>>>> browser = toolbox.checkinAndApproveAsset(browser, 'comment')
>>>>>
>>>>> Any insights? Thanks in advance.
>>>>>
>>>>

-- 
-- 
Before posting, please read http://watir.com/support. In short: search before 
you ask, be nice.

[email protected]
http://groups.google.com/group/watir-general
[email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to