Hi,
Webdriver now has a driver for Safari. It works fine locally, but there's some issues using it via the jasmine gem.
It uses web sockets, so js eval seems to be much slower when returning a lot of data, which happens if you have even a moderately large jasmine suite.
To be specific, the root of this slowness (as far as I've traced it) happens in Webdriver's overridden Selenium::WebDriver::Safari#raw_execute method. It's still new, so I'm guessing there's some performance optimization that needs to be done.
In Jasmine, this is problematic in the Jasmine::SpecBuilder#load_suite_info [1] and #load_results [2] methods.
For #load_results, this seems addressable by just reducing the slice size to 5 or so.
However, for #load_suite_info it's unclear how to reduce the response size.
So, the question is, can you Jasmine devs give any guidance on how we could take a multi-request chunked approach to getting the @suites data back in #load_results?
I'm guessing this isn't possible with the current Jasmine Core implementation of suites, but not sure how to go about fixing that.
(Of course, this is just a workaround for the underlying performance issues with the Safari raw_execute performance in WebDriver, but I figure it's the easiest way to fix the problem for now.)
Thanks,
-- Chad