@@ -594,26 +594,67 @@ public void ShouldHandleRecursiveStructures()
594594 [ Ignore ( "Reason for ignore: Failure indicates hang condition, which would break the test suite. Really needs a timeout set." ) ]
595595 public void ShouldThrowExceptionIfExecutingOnNoPage ( )
596596 {
597- bool exceptionCaught = false ;
598- try
597+ Assert . That ( ( ) =>
599598 {
600599 ( ( IJavaScriptExecutor ) driver ) . ExecuteScript ( "return 1;" ) ;
601- }
602- catch ( WebDriverException )
603- {
604- exceptionCaught = true ;
605- }
606-
607- if ( ! exceptionCaught )
608- {
609- Assert . Fail ( "Expected an exception to be caught" ) ;
610- }
600+ } , Throws . InstanceOf < WebDriverException > ( ) ) ;
611601 }
612602
613603 [ Test ]
614604 public void ExecutingLargeJavaScript ( )
615605 {
616- string script = "// stolen from injectableSelenium.js in WebDriver\n var browserbot = {\n \n triggerEvent: function(element, eventType, canBubble, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown) {\n canBubble = (typeof(canBubble) == undefined) ? true: canBubble;\n if (element.fireEvent && element.ownerDocument && element.ownerDocument.createEventObject) {\n // IE\n var evt = this.createEventObject(element, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown);\n element.fireEvent('on' + eventType,evt);\n } else {\n var evt = document.createEvent('HTMLEvents');\n \n try {\n evt.shiftKey = shiftKeyDown;\n evt.metaKey = metaKeyDown;\n evt.altKey = altKeyDown;\n evt.ctrlKey = controlKeyDown;\n } catch(e) {\n // Nothing sane to do\n }\n \n evt.initEvent(eventType, canBubble, true);\n return element.dispatchEvent(evt);\n }\n },\n \n getVisibleText: function() {\n var selection = getSelection();\n var range = document.createRange();\n range.selectNodeContents(document.documentElement);\n selection.addRange(range);\n var string = selection.toString();\n selection.removeAllRanges();\n \n return string;\n },\n \n getOuterHTML: function(element) {\n if(element.outerHTML) {\n return element.outerHTML;\n } else if(typeof(XMLSerializer) != undefined) {\n return new XMLSerializer().serializeToString(element);\n } else {\n throw \" can't get outerHTML in this browser\" ;\n }\n }\n \n \n };return browserbot.getOuterHTML.apply(browserbot, arguments);" ;
606+ string script = """
607+ // stolen from injectableSelenium.js in WebDriver
608+ var browserbot = {
609+
610+ triggerEvent: function(element, eventType, canBubble, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown) {
611+ canBubble = (typeof(canBubble) == undefined) ? true: canBubble;
612+ if (element.fireEvent && element.ownerDocument && element.ownerDocument.createEventObject) {
613+ // IE
614+ var evt = this.createEventObject(element, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown);
615+ element.fireEvent('on' + eventType,evt);
616+ } else {
617+ var evt = document.createEvent('HTMLEvents');
618+
619+ try {
620+ evt.shiftKey = shiftKeyDown;
621+ evt.metaKey = metaKeyDown;
622+ evt.altKey = altKeyDown;
623+ evt.ctrlKey = controlKeyDown;
624+ } catch(e) {
625+ // Nothing sane to do
626+ }
627+
628+ evt.initEvent(eventType, canBubble, true);
629+ return element.dispatchEvent(evt);
630+ }
631+ },
632+
633+ getVisibleText: function() {
634+ var selection = getSelection();
635+ var range = document.createRange();
636+ range.selectNodeContents(document.documentElement);
637+ selection.addRange(range);
638+ var string = selection.toString();
639+ selection.removeAllRanges();
640+
641+ return string;
642+ },
643+
644+ getOuterHTML: function(element) {
645+ if(element.outerHTML) {
646+ return element.outerHTML;
647+ } else if(typeof(XMLSerializer) != undefined) {
648+ return new XMLSerializer().serializeToString(element);
649+ } else {
650+ throw "can't get outerHTML in this browser";
651+ }
652+ }
653+
654+
655+ };return browserbot.getOuterHTML.apply(browserbot, arguments);
656+ """ ;
657+
617658 driver . Url = javascriptPage ;
618659 IWebElement element = driver . FindElement ( By . TagName ( "body" ) ) ;
619660 object x = ExecuteScript ( script , element ) ;
0 commit comments