browser.element(:id, "navlist")

Is it a pop up?

And are you aware that `set!` function is using JavaScript not Selenium 
send_keys? 


On Friday, November 3, 2017 at 6:13:22 PM UTC+5:30, Jeff Nyman wrote:

> I have a Watir script that works against one of my sample sites. I'll 
> provide that below. There's one part where I have to put a `sleep` 
> statement. I'm curious how Watir can be used to handle this without the 
> sleep statement. All of these will not work:
>
>
> browser.element(:id, "navlist").wait_until(&:visible?).click
> browser.element(:id, "navlist").wait_until(&:present?).click
> browser.element(:id, "navlist").wait_until(&:enabled?).click
>
> Here is the script:
>
> #!/usr/bin/env ruby
>
>
> require 'rspec/expectations'
> include RSpec::Matchers
>
>
> require 'watir'
>
>
> browser = Watir::Browser.new
>
>
> browser.window.move_to 0, 0
> width = browser.execute_script("return screen.width;")
> height = browser.execute_script("return screen.height;")
> browser.window.resize_to(width, height)
>
>
> browser.goto 'https://veilus.herokuapp.com'
>
>
> expect(browser.title).to match 'Veilus'
> expect(browser.img(:id, "site-image").exists?).to be_truthy
>
>
> browser.element(:id, "open").click
> browser.text_field(:id, "username").set! "admin"
> browser.text_field(:id, "password").set! "admin"
> browser.input(:id, "login-button").click
>
>
> login_text = browser.div(:class, "notice").text
> expect(login_text).to eq("You are now logged in as admin.")
>
>
> sleep 2
> browser.element(:id, "navlist").click
>
> browser.link(:id, "stardate").click
>
>
> expect(browser.title).to match 'Stardate Calculator'
> expect(browser.url).to match 'stardate'
> expect(browser.img(:id, "stardate-logo").exists?).to be_truthy
>
>
> browser.quit
>
>
> You can see the sleep statement there before the navlist is clicked. If 
> you take out the sleep, the script will fail. As mentioned, the waiting 
> until aspects do not work because it's never the case that the element 
> isn't there nor that it isn't visible. It's just that a put a little 
> JavaScript in place that makes the element pop out after a brief delay.
>
> I'm just curious regarding what the idiomatic Watir solution for this 
> would be.
>
> - Jeff
>

-- 
-- 
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/d/optout.

Reply via email to