
|
If you were logged in you would be able to see more operations.
|
|
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
|
|
When a subframe in domain A changes the location of the top frame in domain B, it immediately halts the execution of the currently running subframe's JavaScript, so the subframe never gets to reply "OK" to the server; it doesn't even fire his "onunload" event, which would have at least gotten word back to the server that the subframe had died.
I managed to reproduce this by modifying NestedFrames.html to use a synonym for localhost when loading NestedFrames2.html. As far as I can tell, this only happens in multi-domain pages in PI mode.
I can sort-of get past it by calling selenium.doClick in a setTimeout, to guarantee that I at least get an "OK" back from the subframe, but when the top window's location finally changes, the only frame who gets a chance to fire his "onunload" event is the top frame, so Selenium continues to try to "getWhetherThisFrameMatchFrameExpression" commands to the dead subframes of the previous page... you get the same "stalling" effect as before.
I'm going to have to how to think about this one in PI mode. I think the ultimate fix is going to involve assuming that if a frame has closed, all of its children have also closed. (That, in turn, requires me to assume that I understand, on the server side, which frames are children of which, something I've been loathe to assume thus far.) Alternately, I may want to try to create a new command that sends some sort of hint to the server that it should assume that all subframes are dead and that it should only try to talk to "top" frames.
|
|
Description
|
When a subframe in domain A changes the location of the top frame in domain B, it immediately halts the execution of the currently running subframe's JavaScript, so the subframe never gets to reply "OK" to the server; it doesn't even fire his "onunload" event, which would have at least gotten word back to the server that the subframe had died.
I managed to reproduce this by modifying NestedFrames.html to use a synonym for localhost when loading NestedFrames2.html. As far as I can tell, this only happens in multi-domain pages in PI mode.
I can sort-of get past it by calling selenium.doClick in a setTimeout, to guarantee that I at least get an "OK" back from the subframe, but when the top window's location finally changes, the only frame who gets a chance to fire his "onunload" event is the top frame, so Selenium continues to try to "getWhetherThisFrameMatchFrameExpression" commands to the dead subframes of the previous page... you get the same "stalling" effect as before.
I'm going to have to how to think about this one in PI mode. I think the ultimate fix is going to involve assuming that if a frame has closed, all of its children have also closed. (That, in turn, requires me to assume that I understand, on the server side, which frames are children of which, something I've been loathe to assume thus far.) Alternately, I may want to try to create a new command that sends some sort of hint to the server that it should assume that all subframes are dead and that it should only try to talk to "top" frames. |
Show » |
|