Created
November 23, 2010 23:17
-
-
Save jarib/712749 to your computer and use it in GitHub Desktop.
IE driver - reductions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
script = <<S | |
var browserbot = { | |
triggerEvent: function(element, eventType, canBubble, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown) { | |
canBubble = (typeof(canBubble) == undefined) ? true: canBubble; | |
if (element.fireEvent && element.ownerDocument && element.ownerDocument.createEventObject) { | |
// IE | |
var evt = this.createEventObject(element, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown); | |
element.fireEvent('on' + eventType, evt); | |
} else { | |
var evt = document.createEvent('HTMLEvents'); | |
try { | |
evt.shiftKey = shiftKeyDown; | |
evt.metaKey = metaKeyDown; | |
evt.altKey = altKeyDown; | |
evt.ctrlKey = controlKeyDown; | |
} catch(e) { | |
// Nothing sane to do | |
} | |
evt.initEvent(eventType, canBubble, true); | |
return element.dispatchEvent(evt); | |
} | |
} | |
}; | |
return browserbot.triggerEvent.apply(browserbot, arguments); | |
S | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.close | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
trigger = driver.find_element(:id => "trigger") | |
driver.execute_script(script, trigger, 'click') | |
output = driver.find_element(:id => "output").text | |
puts "#{browser}: #{output}" | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.unlink | |
# | |
# expected output: | |
# | |
# ie: triggered | |
# firefox: triggered | |
# | |
# actual output: | |
# | |
# JavaScript error | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:15:in `initialize' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `new' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `create_response' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/default.rb:50:in `request' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:35:in `call' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:406:in `raw_execute' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:384:in `execute' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:180:in `executeScript' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/driver.rb:211:in `execute_script' | |
# test.rb:45 | |
# test.rb:39:in `each' | |
# test.rb:39 | |
# firefox: triggered | |
# | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<script type="text/javascript" charset="utf-8"> | |
function log (e) { | |
document.getElementById('output').innerHTML += "<p>" + e.toString() + "</p>"; | |
} | |
</script> | |
</head> | |
<body> | |
<div id="trigger" onclick='log("triggered")'>click me</div> | |
<div id="output"></div> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.close | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
puts browser | |
options = driver.find_elements(:tag_name => "option") | |
options.each do |option| | |
bool = driver.execute_script "return !!arguments[0].getAttributeNode(arguments[1]);", option, 'label' | |
puts "\t#{bool}" | |
end | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.unlink | |
# | |
# expected output: | |
# | |
# ie | |
# false | |
# true | |
# firefox | |
# false | |
# true | |
# | |
# actual output: | |
# | |
# ie | |
# JavaScript error | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:15:in `initialize' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `new' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `create_response' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/default.rb:50:in `request' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:35:in `call' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:406:in `raw_execute' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:384:in `execute' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:180:in `executeScript' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/driver.rb:211:in `execute_script' | |
# test.rb:18 | |
# test.rb:17:in `each' | |
# test.rb:17 | |
# test.rb:9:in `each' | |
# test.rb:9 | |
# firefox | |
# false | |
# true | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
</head> | |
<body> | |
<select id="countries"> | |
<option value="1">Norway</option> | |
<option value="2" label="USA"></option> | |
</select> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.close | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
driver.find_elements(:xpath => "//div[@class='doesnt-exist']") | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.unlink | |
# | |
# Firefox correctly returns an empty array: | |
# | |
# -> POST session/b3f9a511-f250-42ee-9a57-6eea50349728/elements | |
# >>> {"value":"//div[@class='doesnt-exist']","using":"xpath"} | |
# > {"Content-Type"=>"application/json; charset=utf-8", "Content-Length"=>"56", "Accept"=>"application/json"} | |
# <- {"name":"findElements","sessionId":"b3f9a511-f250-42ee-9a57-6eea50349728","status":0,"value":[]} | |
# | |
# IE returns null: | |
# | |
# -> POST session/cbfa6a3c-516f-4e7a-bcba-9bd109423e6e/elements | |
# >>> {"value":"//div[@class='doesnt-exist']","using":"xpath"} | |
# > {"Content-Type"=>"application/json; charset=utf-8", "Content-Length"=>"56", "Accept"=>"application/json"} | |
# <- {"sessionId":"cbfa6a3c-516f-4e7a-bcba-9bd109423e6e","status":0,"value":null} | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> | |
</head> | |
<body>foo</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.flush | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
puts browser | |
driver.find_elements(:tag_name => "option").each do |option| | |
puts "text: #{option.text}, selected: #{option.selected?}" | |
end | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.close | |
# | |
# expected output: | |
# | |
# ie | |
# text: Denmark, selected: false | |
# text: Norway, selected: true | |
# text: Sweden, selected: false | |
# text: United Kingdom, selected: false | |
# text: USA, selected: false | |
# firefox | |
# text: Denmark, selected: false | |
# text: Norway, selected: true | |
# text: Sweden, selected: false | |
# text: United Kingdom, selected: false | |
# text: USA, selected: false | |
# | |
# actual output: | |
# | |
# ie | |
# Error determining if element is selected | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:15:in `initialize' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `new' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `create_response' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/default.rb:50:in `request' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:35:in `call' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:406:in `raw_execute' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:384:in `execute' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:313:in `isElementSelected' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/element.rb:153:in `selected?' | |
# test.rb:17:in `block (2 levels) in <main>' | |
# test.rb:16:in `each' | |
# test.rb:16:in `block in <main>' | |
# test.rb:10:in `each' | |
# test.rb:10:in `<main>' | |
# firefox | |
# text: Denmark, selected: false | |
# text: Norway, selected: true | |
# text: Sweden, selected: false | |
# text: United Kingdom, selected: false | |
# text: USA, selected: false | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Country Select</title> | |
</head> | |
<body> | |
<select name="new_user_country" id="new_user_country" class="country"> | |
<option class="scandinavia" value="1">Denmark</option> | |
<option id="nor" class="scandinavia" value="2" selected="selected">Norway</option> | |
<option class="scandinavia" value="3">Sweden</option> | |
<option value="4">United Kingdom</option> | |
<option value="5">USA</option> | |
</select> <br /> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.close | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
driver.find_elements(:xpath => "//div[@id='table-rows-test']") | |
puts "#{browser}: ok" | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.unlink | |
# | |
# expected output: | |
# | |
# ie: ok | |
# firefox: ok | |
# | |
# actual output: | |
# | |
# Unable to find element with xpath == //div[@id='table-rows-test'] | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:15:in `initialize' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `new' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `create_response' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/default.rb:50:in `request' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:35:in `call' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:406:in `raw_execute' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:384:in `execute' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:359:in `find_element_by' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:257:in `findElementByXpath' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/find.rb:44:in `send' | |
# C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/find.rb:44:in `find_element' | |
# test.rb:14 | |
# test.rb:9:in `each' | |
# test.rb:9 | |
# firefox: ok | |
# | |
# | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> | |
<title>Nested tables from WebKit/LayoutTests/fast/dom</title> | |
</head> | |
<body></body> | |
<script> | |
function buildRowsTest() | |
{ | |
var rowsTest = document.createElement("div"); | |
rowsTest.id = "table-rows-test"; | |
document.body.appendChild(rowsTest); | |
}; | |
buildRowsTest(); | |
</script> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.flush | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
tag = driver.find_element(:xpath => "//label[@for='new_user_first_name']").tag_name | |
puts "#{browser}: #{tag}" | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.close | |
# | |
# expected output: | |
# | |
# ie: label | |
# firefox: label | |
# | |
# actual output: | |
# | |
# Unable to find element with xpath == //*[@for='new_user_first_name'] | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:15:in `initialize' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `new' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `create_response' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/default.rb:50:in `request' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:35:in `call' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:406:in `raw_execute' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:384:in `execute' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:359:in `find_element_by' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:257:in `findElementByXpath' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/find.rb:44:in `find_element' | |
# test.rb:15:in `block in <main>' | |
# test.rb:10:in `each' | |
# test.rb:10:in `<main>' | |
# firefox: label | |
# | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<body> | |
<label for="new_user_first_name" id="first_label">First name</label> | |
<input name="new_user_first_name" id="new_user_first_name" class="name" /> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.flush | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
tag = driver.find_element(:xpath => "//meta[@http-equiv='Content-Type']").tag_name | |
puts "#{browser}: #{tag}" | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.close | |
# | |
# expected output: | |
# | |
# ie: meta | |
# firefox: meta | |
# | |
# actual output: | |
# | |
# Unable to find element with xpath == //meta[@http-equiv='Content-Type'] | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:15:in `initialize' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `new' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `create_response' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/default.rb:50:in `request' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:35:in `call' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:406:in `raw_execute' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:384:in `execute' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:359:in `find_element_by' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:257:in `findElementByXpath' | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/find.rb:44:in `find_element' | |
# test.rb:15:in `block in <main>' | |
# test.rb:10:in `each' | |
# test.rb:10:in `<main>' | |
# firefox: meta | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
</head> | |
<body> | |
foo | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
begin | |
driver = Selenium::WebDriver.for :ie | |
driver.navigate.to "http://google.com" # i.e. any page | |
# Overwriting window.prompt fails, but alert() and confirm() appears to work. | |
driver.execute_script "window.prompt = function(text, value) { window.__lastWatirPrompt = { message: text, default: value }; return true; }" | |
ensure | |
driver.quit if driver | |
end | |
# error: | |
# | |
# C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok': JavaScript error (Selenium::WebDriver::Error::UnexpectedJavascriptError) | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/response.rb:15:in `initialize' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `new' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:50:in `create_response' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/default.rb:50:in `request' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/http/common.rb:35:in `call' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:406:in `raw_execute' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:384:in `execute' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/remote/bridge.rb:180:in `executeScript' | |
# from C:/Ruby192/lib/ruby/gems/1.9.1/gems/selenium-webdriver-0.1.1.dev/lib/selenium/webdriver/common/driver.rb:211:in `execute_script' | |
# from prompt_test.rb:8:in `<main>' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'ext-tempfile' | |
html = ExtTempfile.new("ie-test.html") | |
html.write DATA.read | |
html.close | |
[:ie, :firefox].each do |browser| | |
begin | |
driver = Selenium::WebDriver.for browser | |
driver.navigate.to "file://#{html.path}" | |
text = driver.find_element(:id => "t1_r2_c2").text | |
puts browser | |
puts "\t#{text.inspect}" | |
rescue => e | |
puts $!, $@ | |
ensure | |
driver.quit if driver | |
end | |
end | |
html.unlink | |
# expected output: | |
# | |
# ie | |
# "Table 1, Row 2, Cell 2 Table 2, Row 1, Cell 1 Table 2, Row 1, Cell 2" | |
# firefox | |
# "Table 1, Row 2, Cell 2 Table 2, Row 1, Cell 1 Table 2, Row 1, Cell 2" | |
# | |
# actual output - IE adds extra newlines: | |
# | |
# ie | |
# "Table 1, Row 2, Cell 2 \nTable 2, Row 1, Cell 1 \nTable 2, Row 1, Cell 2" | |
# firefox | |
# "Table 1, Row 2, Cell 2 Table 2, Row 1, Cell 1 Table 2, Row 1, Cell 2" | |
# | |
# | |
__END__ | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> | |
<title>Nested table</title> | |
</head> | |
<body> | |
<table border="1" id="outer"> | |
<tr id="outer_first"> | |
<td> | |
Table 1, Row 1, Cell 1 | |
</td> | |
<td> | |
Table 1, Row 1, Cell 2 | |
</td> | |
</tr> | |
<tr id="outer_second"> | |
<td id="t1_r2_c1"> | |
Table 1, Row 2, Cell 1 | |
</td> | |
<td id="t1_r2_c2"> | |
Table 1, Row 2, Cell 2 | |
<table border="1" id="inner"> | |
<tr id="inner_first"> | |
<td id="t2_r1_c1"> | |
Table 2, Row 1, Cell 1 | |
</td> | |
<td> | |
Table 2, Row 1, Cell 2 | |
</td> | |
</tr> | |
</table> | |
</td> | |
</tr> | |
<tr id="outer_last"> | |
<td> | |
Table 1, Row 3, Cell 1 | |
</td> | |
<td> | |
Table 1, Row 3, Cell 2 | |
</td> | |
</tr> | |
</table> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment