Safari Webdriver fails on url with query

Sierra 10.12.3, Safari 10.0.3, jruby 9.1.2.0, java 1.8.0_91


Manually this url https://fb-onair-ui-test.telescope.tv/?wid=c180a02401a1f871

works fine.

Running through Webdriver it hangs Safari with spinner while script times out looking for an element on the page.

When the query (/?wid=c180a02401a1f871) is removed a page saying to use url with the wid comes up both manually and through Wedriver (but there is no option to enter the wid and move on)


Am using Ruby bindings and Watir-webdriver wrapper.


To launch Safari:

@browser = Watir::Browser.new(:remote, :desired_capabilities => :'safari')


To go to the url:

@browser.goto url


I suspect I need to launch Safari differently to start with but need some guidance there.

Am new to the Mac.


pat


Here is script (mac_safari.rb) that reproduces the issue. It first opens the url without the query, waits a bit, then opens the full url, and waits a bit more.


require 'rubygems'
require 'watir-webdriver'

def get_open_port
  server = TCPServer.new('127.0.0.1', 0)
  port = server.addr[1]
  server.close
  port
end

server_dir = File.expand_path(File.join("~", "awetest", "shamisen", 'bin'))
selenium_server_path = "#{server_dir}/selenium-server-standalone.jar"
output = '> /dev/null 2>&1'
sleep Random.rand(100)/100.0
port = get_open_port
$server = IO.popen("java -jar #{selenium_server_path} -port #{port} \n")

sleep 10

client = Selenium::WebDriver::Remote::Http::Default.new
client.open_timeout = 300 # seconds, default is 60
caps = Selenium::WebDriver::Remote::Capabilities.safari(
  'safariOptions' => {
  'setUseTechnologyPreview' => true,
  'setUseCleanSession' => true
  },
  'unexpectedAlertBehaviour' => 'dismiss',
  'acceptSslCerts' => true
)
@browser = Watir::Browser.new :remote, :http_client => client, :url => "http://localhost:#{port}/wd/hub", :desired_capabilities => caps

@browser.driver.get('https://fb-onair-ui-test.telescope.tv')
sleep(15)
@browser.driver.get('https://fb-onair-ui-test.telescope.tv/?wid=c180a02401a1f871')
sleep(25)

@browser.quit
Process.kill 'INT', $server.pid # rescue nil
Safari Webdriver fails on url with query
 
 
Q