I am doing test automation with geb in groovy, curently dealing with 
scenario like: First, I am in parent window, from there I open new window 
and do some search there, Clicking on the search result generates a confirm 
dialogue and updates the value in parent page, Bypassing the dialog with 
withConfirm(). then I come to parent window but nothing executes after 
that. I think geb is getting confused between pages.
In parent Page
  open new window 
  search for something  
  click on the first search result
  clicking on it opens a confirm dialog 
  click okay and close the new window 
continue with parent window


My code looks like:

withNewWindow(close: false,wait:true,{$(button that opens new 
window).click()}) {
        waitFor{
            title == "title"
        }
        withConfirm(wait: true){$(cause to open confirm dialog).click()}
        }
$("input[name='button'][id='SAVE_FOOTER']").click()
}



Error:

Caught: org.openqa.selenium.NoSuchWindowException: Browsing context has 
been discarded
Build info: version: '3.14.0', revision: 'aacccce0', time: 
'2018-08-02T20:19:58.91Z'
System info: host: 'DESKTOP-NAFK3F3', ip: '10.1.10.195', os.name: 'Windows 
10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_201'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities {acceptInsecureCerts: true, browserName: firefox, 
browserVersion: 65.0.2, javascriptEnabled: true, moz:accessibilityChecks: 
false, moz:geckodriverVersion: 0.24.0, moz:headless: false, moz:processID: 
12824, moz:profile: C:\Users\Dell\AppData\Local..., moz:shutdownTimeout: 
60000, moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: 
true, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, 
platformVersion: 10.0, rotatable: false, setWindowRect: true, 
strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, 
script: 30000}, unhandledPromptBehavior: dismiss and notify}
Session ID: 2c0c768c-785f-49d4-bdff-186566e722dd
org.openqa.selenium.NoSuchWindowException: Browsing context has been 
discarded
Build info: version: '3.14.0', revision: 'aacccce0', time: 
'2018-08-02T20:19:58.91Z'
System info: host: 'DESKTOP-NAFK3F3', ip: '10.1.10.195', os.name: 'Windows 
10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_201'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities {acceptInsecureCerts: true, browserName: firefox, 
browserVersion: 65.0.2, javascriptEnabled: true, moz:accessibilityChecks: 
false, moz:geckodriverVersion: 0.24.0, moz:headless: false, moz:processID: 
12824, moz:profile: C:\Users\Dell\AppData\Local..., moz:shutdownTimeout: 
60000, moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: 
true, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, 
platformVersion: 10.0, rotatable: false, setWindowRect: true, 
strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, 
script: 30000}, unhandledPromptBehavior: dismiss and notify}
Session ID: 2c0c768c-785f-49d4-bdff-186566e722dd
    at 
org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
    at 
org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
    at geb.js.JavascriptInterface.execjs(JavascriptInterface.groovy:66)
    at geb.js.JavascriptInterface.exec(JavascriptInterface.groovy:56)
    at 
geb.js.DefaultAlertAndConfirmSupport.popLastDialogFunctionOnto(DefaultAlertAndConfirmSupport.groovy:114)
    at 
geb.js.DefaultAlertAndConfirmSupport.captureDialog(DefaultAlertAndConfirmSupport.groovy:168)
    at 
geb.js.DefaultAlertAndConfirmSupport.captureConfirm(DefaultAlertAndConfirmSupport.groovy:182)
    at 
geb.js.DefaultAlertAndConfirmSupport.withConfirm(DefaultAlertAndConfirmSupport.groovy:54)
    at 
geb.js.DefaultAlertAndConfirmSupport.withConfirm(DefaultAlertAndConfirmSupport.groovy)
    at geb.js.AlertAndConfirmSupport$withConfirm.call(Unknown Source)
    at geb.Page.withConfirm(Page.groovy:130)
    at geb.Browser.methodMissing(Browser.groovy:249)
    at geb.Browser.invokeMethod(Browser.groovy)
    at 
CRMPageExample$_run_closure1$_closure3.doCall(CRMPageExample.groovy:149)
    at CRMPageExample$_run_closure1$_closure3.doCall(CRMPageExample.groovy)
    at geb.Browser.withNewWindow(Browser.groovy:798)
    at CRMPageExample$_run_closure1.doCall(CRMPageExample.groovy:137)
    at CRMPageExample$_run_closure1.doCall(CRMPageExample.groovy)
    at geb.Browser.drive(Browser.groovy:128)
    at geb.Browser$drive$0.callStatic(Unknown Source)
    at geb.Browser.drive(Browser.groovy:98)
    at geb.Browser$drive.call(Unknown Source)
    at CRMPageExample.run(CRMPageExample.groovy:97)
1552494416789   Marionette  INFO    Stopped listening on port 52107
[Parent 12824, Gecko_IOThread] WARNING: pipe error: 109: file 
z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 
332
[Child 2628, Chrome_ChildThread] WARNING: pipe error: 109: file 
z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 
332
[Child 2628, Chrome_ChildThread] WARNING: pipe error: 109: file [Parent 
12824, Gecko_IOThread] WARNING: pipe error: 109: file 
z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 
332
[Child 8068, Chrome_ChildThread] WARNING: pipe error: 109: file 
z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 
332
[Child 8068, Chrome_ChildThre
###!!! [Child][MessageChannel::SendAndWait] Error: Channel error: cannot 
send/recv



Methods I tried but seems useless

waitFor{
        withwindow{Parent window}){true}

    }
selenium testing groovy automated-tests geb

-- 
You received this message because you are subscribed to the Google Groups "Geb 
User Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/geb-user/bdd04567-e37f-4e2e-aa76-56370e7b082d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to