[Wtr-general] Unable to locate cells by text
Hello. I am using Ruby 1.8.2 and Watir 1.4.1 installed from the one click installer. I cannot seem to access cells by text. IEs dev tool bar shows them clearly in the DOM but ie.cell(:text, text in the cell).exists? returns false ie.show_all_objects doesnt show them either. The most curious thing is that the tests used to work like this before but I had upgraded Watir to 1.5.somethingorother and ruby to 1.8.5. This caused all sorts of issues so I down graded back to square one and this problem appeared. Is there something I may have forgotten to install or a library I may be missing? Let me know if you need any additional info from me to assist. Thank you! Michael Townley Quality Assurance Engineer Incisent Technologies, LLC ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
[Wtr-general] More details on cells not found by text
Using the following HTML: html head title celltest /title /head body table trtdtest/td/tr /table /body /html I attach to the window and run ie.cell(:text, test).exists? and irb returns false. ie.show_all_objects returns nil ie.show_tables returns: Found 1 tables 1 id = rows=1 columns =1 =nil Im currently running ruby 1.8.2 and watir 1.4.1, which the test was developed in. Thank you, Mike Townley ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] More details on cells not found by text - FIXED
Thank you, that seemed to do it! -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Schmidt Sent: Wednesday, August 23, 2006 12:21 PM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] More details on cells not found by text Mike, That test works fine under 1.5.1.1079 so it may be a problem in 1.4.1 that's been fixed since. If you need to remain with 1.4.1 then perhaps you can try an alternate method to get to that cell? I don't have 1.4.1 loaded, but try ie.table(:index, 1)[1][1].exists? and see if that works in 1.4.1. (Find table with index of 1, then find row 1, column 1.) David Mike Townley wrote: Using the following HTML: html head title celltest /title /head body table trtdtest/td/tr /table /body /html I attach to the window and run ie.cell(:text, test).exists? and irb returns false. ie.show_all_objects returns 'nil' ie.show_tables returns: Found 1 tables 1 id = rows=1 columns =1 =nil I'm currently running ruby 1.8.2 and watir 1.4.1, which the test was developed in. Thank you, Mike Townley ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
[Wtr-general] Multiple Security alerts
Hello, I am trying to automate the login for a web application that presents more than one security alert. The first is presented for the SSL connection to the login page. The login page is a front end for CAS (central authentication service) CAS has then opens an SSL connection to one of the load balanced instances of tomcat. This results in getting two security popups. Before this CAS set up was implemented, we just had one security alert that was simply handled with the multi-threaded solution shown on the wiki for WATIR 1.4 The old scheme basically created a thread to monitor the presense of a popup and click ok if it found one, and also to pass the code block that causes the popup to another thread. I have tried nesting them but that doesnt seem to do it. Example; if conf.has_security_alert Popup.new(@ie, Security Alert, fast_popup=true).click_ctl(Yes) [EMAIL PROTECTED](url)} //Original method, works fine for one pop up. Passes whatever is in {} to the other thread while the main thread looks for the popup. Here is what I have tried with no luck if conf.has_security_alert Popup.new(@ie, Security Alert, fast_popup=true).click_ctl(Yes) {Popup.new(@ie, Security Alert, fast_popup=true).click_ctl(Yes) [EMAIL PROTECTED](url)}} Also tried; Popup.new(@ie, Security Alert, fast_popup=true).click_ctl(Yes) [EMAIL PROTECTED](url) Popup.new(@ie, Security Alert, fast_popup=true).click_ctl(Yes) [EMAIL PROTECTED](url)} } Here is where I define the class Popup require 'watir' require 'win32ole' class Popup # 02/16/06 KL: fast_popup indicates whether or not you're interacting with a popup # that displays before the step that triggered it even completes. the security alert # popup, for example, is displayed before the beta login page has finished loading. def initialize(ie, win_title, fast_popup) @ie = ie if ie if win_title.nil? or win_title == then @win_title = Microsoft Internet Explorer else @win_title = win_title end if fast_popup == nil then @fast_popup = false else @fast_popup = fast_popup end @a3 = WIN32OLE.new(AutoItX3.Control) @a3.AutoItSetOption(WinTitleMatchMode, 2) # set window recognition to match any substring in the title @max_wait = 120 end attr_reader :max_wait attr_writer :max_wait # 02/16/06 KL: u need to pass a block along with your call to click_ctl. # the associated block should specify the action taken to generate the popup you want # to interact with. the block can also be empty. def click_ctl(ctl_id) if @fast_popup then cmd = ruby c:/regression_tests/common/script/popup_click_ctl.rb \[EMAIL PROTECTED] \#{ctl_id}\ t = Thread.new() { system(cmd) } m = Thread.new() { yield } m.join t.join else yield sleep(2) @a3.WinWait(@win_title, , @max_wait) if @a3.WinExists(@win_title, ) == 1 then @a3.WinActivate(@ie.title()) if @ie @a3.WinActivate(@win_title) @a3.ControlClick(@win_title, , ctl_id) end end # return focus to the browser. @ie.focus if @ie end end ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Accessing Session Information
Perhaps it was a mistake or misunderstanding, but it came across as a rather blatant insult I shouldnt have to really say this sort of thing, and I would prefer if things like this didnt need to be discussed on this list, but If you admit there is possibility that you may have made a mistake in your interpretation of the Brets action you cannot justify your response based on anything being blatent as this would mean there was no room for interpretation. I am personally offended when people who take their free time (which is never really free) to help others are disrespected by being treated like they owe you something. The opensource community operates almost entirely on voluntary cooperation, collaboration, and participation. We all are here to give and receive the gifts of knowledge and information. Lonny, just because you have volunteered at times to help out and share does not entitle you to any assistance at all from anyone. If you found Brets advice less than usefull, perhaps you should have politely asked for clarification. With people as busy as they are, we should strive to be more conscious and appreciative of when they take time to help us out with what are essentially our own problems to solve. Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lonny Eachus Sent: Wednesday, July 12, 2006 12:59 PM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] Accessing Session Information With all due respect, Rand, I have been listening in on this forum for some time, and posting my own suggestions from time to time. My own advice might not always have been 100% spot-on, but at other times it definitely helped people here. Nor did I offer advice because I owed it to anybody. My desire was to help the community. Bret's link to a page on Internet Explorer was neither on-topic or useful. Perhaps it was a mistake or misunderstanding, but it came across as a rather blatant insult. I have no reason to apologize when a polite request on my part is met with such a rude response. Lonny Eachus == Subject: Re: [Wtr-general] Accessing Session Information From: Rand Thacker [EMAIL PROTECTED] Date: Wed, 12 Jul 2006 11:51:50 -0500 Lonny, for someone asking for help, you're going about it all wrong. Folks who answer questions on this list aren't doing it because it's their job or because they owe you. They are doing it out of the general desire to help the community. If you are rude to the people who are providing help, they will cease to answer your requests for help. Something like: Bruce, I don't think the link you sent accessed the specific area of the tutorial that you were hoping for. Either that, or I'm just not sure what area would help me find answers to my questions regarding session information. Might get better results than outright sarcasm. ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] assert_arrayEquals
Thank you for the alternative methods. Can anyone shed some light on why it was removed in the first place? This really complicates things. I wasn't expecting all this rewriting after upgrading watir. Otherwise I would have stuck with 1.4 Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Chris McMahon Sent: Tuesday, July 11, 2006 2:26 PM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] assert_arrayEquals Dang. I didn't think of that. I've got some refactoring to do. :) This'd work though: require 'test/unit' class Foo Test::Unit::TestCase def test_foo array_1 = [1,2,3] array_2 = [1,2,3] assert_equal(array_1 - array_2 ,[]) assert_equal(array_2 - array_1 ,[]) ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] assert_arrayEquals
Thank you! This is really what I was looking for. Great. I don't have to rewrite too much now. I'll give this a shot and let you know if it doesn't work out. Previous tester probably shouldn't have used that method. He used it all over the place in the old scripts, I wont use it any new ones. Cheers! Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Attebery, Bill Sent: Tuesday, July 11, 2006 3:56 PM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] assert_arrayEquals Thank you for the alternative methods. Can anyone shed some light on why it was removed in the first place? This really complicates things. I wasn't expecting all this rewriting after upgrading watir. Otherwise I would have stuck with 1.4 Mike That method appears to be in the testUnitAddons.rb file in the watir directory in 1.4 -- can't you simply do one of the following: 1- copy the method and paste it into the 1.5 testUnitAddons.rb file (assuming it exists - I can't confirm as I haven't been able to install and use 1.5 successfully yet - problems with the attach method), 2- extend the Test::Unit::Assertions module in your test file 3- simply require testUnitAddons.rb in your test files? Below is the method from Test::Unit::Assertions in testUnitAddons.rb def assert_arrayEquals(expectArray, actualArray, message = nil ) _wrap_assertion do assert_block(assert should not be called with a block.) { !block_given? } assert_equal(expectArray.length, actualArray.length, Lengths did not match) assert_block(contents are different. ){ compareArrays( expectArray, actualArray) } end #_wrap end #def The content contained in this electronic message is not intended to constitute formation of a contract binding TWTC. TWTC will be contractually bound only upon execution, by an authorized officer, of a contract including agreed terms and conditions or by express application of its tariffs. This message is intended only for the use of the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, or the employee or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this message is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the sender of this E-Mail or by telephone. ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] assert_arrayEquals
So should I use this instead of the original code for this method? -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Chris McMahon Sent: Tuesday, July 11, 2006 5:35 PM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] assert_arrayEquals On 7/11/06, Bret Pettichord [EMAIL PROTECTED] wrote: If anyone else runs into this problem you can simply do def assert_arrayEquals a1, a2 assert_equal a1, a2 end and now your tests will work. That's what Dave and I were kind of discussing. I think the original assert would pass if you compared [1,2,3] and [3,2,1], and would also give you an error msg. if the arrays had different number of elements. ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Help! My database query works, my logic does not...
if ( $testval[0][0] == $search ) Should be: If ( $testval == $search[0][0]) Not the other way around. $search is your results set as per this line of code: $search = dbh.select_all(SELECT T_COLUMN FROM QA.TEMP_TABLE WHERE T_COLUMN = '#{$testval}' ) here is a usefull little excerpt from http://www.kitebird.com/articles/rubydbi.html#TOC_10 [excerpt] row = dbh.select_one(statement) rows = dbh.select_all(statement) select_one executes a query and returns the first row as an array, or nil if the query returns no rows. select_all returns an array of DBI::Row objects. (You can access the contents of these objects as discussed earlier.) The array will be empty if the query returns no rows. [/excerpt] - Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Legarreta, Frank Sent: Monday, July 10, 2006 2:56 PM To: wtr-general@rubyforge.org Subject: [Wtr-general] Help! My database query works, my logic does not... Paul, I tried both the == and [0][0] and now I get the opposite effect. The search now comes up false regardless of whether the testvalue exists in the database. Frank Re: [Wtr-general] Help! My database query works, my logic does not... Paul Rogers Mon, 10 Jul 2006 12:33:09 -0700 if ( $testval = $search ) should be if ( $testval == $search ) there may be other problems too - do you need to specify which row column the value comes from? ( I cant remeber how this works off the top of my head) ie - perhaps it also needs to be, where [0][0] is the row and column number from the result set if ( $testval[0][0] == $search ) Regardless of whether testval (in this case ASDF1234) is in the database, the conditional logic always returns true. The select statement is working, but I think the syntax of my if/else conditional logic is incorrect. This e-mail and any attachments may contain confidential and privileged information. Any dissemination or use of the information by a person other than the intended recipient is unauthorized and may be illegal. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this e-mail and destroy any copies. Although this e-mail and any attachments are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the Board of Trade of the City of New York, Inc. or the New York Clearing Corporation for any loss or damage arising in any way from its use. Thank you. ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Load site without images?
You can tell IE to not load images. You'll need to click Internet Options from the Tools menu. In the new window that opens, click the Advanced tab on the far right. Scroll down the list until you see the Multimedia category and click the checkbox next to Show Pictures to uncheck it, then click Apply and OK. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Christian Baumann Sent: Tuesday, June 13, 2006 2:38 PM To: wtr-general@rubyforge.org Subject: [Wtr-general] Load site without images? Hello! Is it possible to execute watir-scripts without loading the images in a website? I´m on a dialup and have a real bandwith-problem; and for the execution of my testcases loading of the images isn´t necessary. Thanks in advance, Christian ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Beep for intervention?
You can't do that with Watir, but you can with ruby in general. Remember that you are not limited by Watir to what you can do in your test scripts. Your upper limit is with Ruby. You can program a notification in ruby when it gets to a specific part of your script. Maybe you would like it to open an alert box or play a sound or something like that? You can find code in the libraries on how to do nifty things like this. Best Wishes Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Moore Sent: Monday, June 05, 2006 5:28 PM To: wtr-general@rubyforge.org Subject: [Wtr-general] Beep for intervention? I've got a script that can take some time to run, and needs human intervention in a couple parts. Is there a way to have Watir beep or make some sort of audio notification? I guess I could make a page that plays a MIDI file or something which would get opened up at a certain point in the code, but something cleaner would be nice. Thanks, -- Michael Moore --- www.stuporglue.org -- Donate your used computer to a student that needs it. www.ubuntu-utah.org -- In Utah? Interested in Ubuntu? Come join us. ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Grouping Test Cases
The way I had been going about it: TestSuite Requires testcase_classes, is the master test script. Testcase_classes are classes containing individual testcases class TestClass Test::Unit::TestCase Test cases are methods with names like: test_xx_description I just run the TestSuite and it runs all the tests in each class. I named the classes based on each module of the app I'm testing, the tests are named by what they are checking for. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Chris McMahon Sent: Wednesday, May 24, 2006 11:51 AM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] Grouping Test Cases On 5/24/06, Adrian Rutter [EMAIL PROTECTED] wrote: Could anyone tell me how they are grouping test cases and running suites within Watir? #run_suite.rb topdir = File.join(File.dirname(__FILE__)) Dir.chdir topdir do tests = Dir[test*] tests.each{|x| require x} end ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Blocking popup window?
Title: Blocking popup window? I think you need to split off a separate thread for the popup detection. Basically, you have the popup checker running in a loop in a separate thread from the links being clicked. So in pseudo code: A=Thread.new(method_that_loops_through_links) B=thread.new(method_that_clicks_pop_ups) Join.A Join.B My threading knowledge is next to zip, be sure to read up in the FAQ on more of this. I would also recommend upgrading your version on Watir to the latest. -Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Paatsch, Bernd Sent: Wednesday, May 24, 2006 2:34 PM To: 'wtr-general@rubyforge.org' Subject: [Wtr-general] Blocking popup window? Hello all, I use watir version 1.4.1. My script finds certain links and adds them in an array and then follows each of the links (see code below). However I get once in a while a IE popup window Do you want to save changes: OK, CANCEL. However ie.goto(link) blocks the progress of the script and so the next line never gets executed. What is a proper way of dealing with the pop-up window? Thanks, Bernd mainnav.each do |m| ie.goto(m) # # why sometimes the Do you want to save changes dialog box appears I don't know # but let's deal with it popup.clickWindowsButton(Microsoft Internet Explorer, CANCEL , maxWaitTime=20 ) end ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
[Wtr-general] Version discrepancy?
I just updated to Watir 1.5.0.98. I first uninstalled using gem uninstall watir command. I then installed the latest version from a local gem . I can verify the version installed with gem list local watir it shows 1.5.0.98. ruby e require Watir; puts Watir::IE::VERSION still shows 1.4.1 can I be sure of the version that is actually being included? Thanks Mike ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Version discrepancy?
Yea, I used the one-click. I removed it with gem. I guess I need to go back and clean up all the old stuff and try again with 1.5 from gem. Thanks -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bret Pettichord Sent: Tuesday, May 23, 2006 12:00 PM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] Version discrepancy? On 5/23/06, Mike Townley [EMAIL PROTECTED] wrote: I just updated to Watir 1.5.0.98. I first uninstalled using 'gem uninstall watir' command. I then installed the latest version from a local gem . I can verify the version installed with 'gem list local watir' it shows 1.5.0.98. ruby e 'require Watir; puts Watir::IE::VERSION' still shows 1.4.1 That means that you are still getting the old version. This can happen if you installed 1.4.1 using the one-click installer. You should uninstall 1.4.1. (If you installed 1.4.1 via the gem, you won't have this problem, and you won't need to uninstall it.) Sorry for the trouble. Bret ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
[Wtr-general] Development updates
Is there a place I can check out the latest features, bug fixes and updates to Watir with out cvsing the daily? Im curious in particular about the support for modals such as _javascript_ alert boxes. Thanks Mike ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
Re: [Wtr-general] Development updates
Thank you, I was mainly wondering if you had a changelog online but this will help out quite a bit. Ill take a look at dialog_test.rb and give it a shot. Have a great weekend, Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bret Pettichord Sent: Friday, May 19, 2006 2:06 PM To: wtr-general@rubyforge.org Subject: Re: [Wtr-general] Development updates On 5/19/06, Mike Townley [EMAIL PROTECTED] wrote: Is there a place I can check out the latest features, bug fixes and updates to Watir with out cvs'ing the daily? http://wiki.openqa.org/display/WTR/Development+Builds We are due for a new build -- maybe this weekend. (and by the way, the latest code is now in SVN at openqa.org) I'm curious in particular about the support for modals such as _javascript_ alert boxes. Take a look at dialog_test.rb ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general
[Wtr-general] Watir, RDT/Eclipse and Debugging
Hello all, I am currently working with Watir version 1.41 with Ruby 1.8.2. I set up some break points in my automation script that I have in Eclipse 3.1.1 with RDT installed. When I run debug as ruby app it gives me the following error that prevents me from debugging any further: Ruby Thread - 1 (WIN32OLERuntimeError occurred :Unknown property or method `name' HRESULT error code:0x80020006 Unknown name.) c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:813 c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:3082 c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:304 .snip the trace the issue seems to be in the method getObject() in water.rb here is a code snippet of the area the issue shows up in: begin case how when :id attribute = object.invoke(id) when :name attribute = object.invoke(name) this seems to be the problem line here when :value attribute = object.value snip If anyone else seems to run into this issue with debugging water/ruby in eclipse, please let me know if you have any solutions. Thanks! Mike [EMAIL PROTECTED] ___ Wtr-general mailing list Wtr-general@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-general