FuckTheWorld / chromedriver

Automatically exported from code.google.com/p/chromedriver
0 stars 0 forks source link

Timed out receiving message from renderer error after webdriver switch window operation #1121

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I am facing the Timed out error exception consistently on our automation 

environment where i am using selenium along with TestNG, which is used to 

test our web  application. During the time of error, we were having three 

windows like 

1. window1
2. window2
3. window3

And the webdriver instance is currently working on window3 which

will be eventually closed automatically when user hit finish button on it.

So then we need to switch back to window2 for further business, but 

after switching to window2 the webdriver is not responding for any 

operation and finally it is throwing the exception "Timed out receiving 

message from renderer error ". But what we have observed is like if we 

switch to window1 instead of window2, all driver functions seems to be 

working fine.

The error message is as below,

org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from 
renderer: 59.909 (Session info: chrome=43.0.2357.81) (Driver info: 
chromedriver=2.15.322448 
(52179c1b310fec1797c81ea9a20326839860b7d3),platform=Windows NT 6.1 SP1 x86_64) 
(WARNING: The server did not provide any stacktrace information) Command 
duration or timeout: 300.03 seconds Build info: version: '2.46.0', revision: 
'87c69e2', time: '2015-06-04 16:17:10' System info: host: 'IBM-N44QFUJM4N4', 
ip: '169.254.255.132', os.name: 'Windows 7', os.arch: 'amd64', os.version: 
'6.1', java.version: '1.7.0_51' Session ID: e05e8887d28106e6bd8d289476b53baa 
Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities 
[{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, 
chrome={userDataDir=C:\Users\IBM_AD~1\AppData\Local\Temp\scoped_dir6164_13189}, 
rotatable=false, locationContextEnabled=true, mobileEmulationEnabled=false, 
version=43.0.2357.81, takesHeapSnapshot=true, cssSelectorsEnabled=true, 
databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, 
webStorageEnabled=true, nativeEvents=true, applicationCacheEnabled=false, 
takesScreenshot=true}]  

Work Environment Details
ChromeDriver: 2.15
Selenium-server-standalone - 2.46
Java Version: 1.7
64bit Windows 7

Original issue reported on code.google.com by anilmuri...@gmail.com on 9 Jun 2015 at 9:21

Attachments:

GoogleCodeExporter commented 9 years ago
Hi All,
I am getting same error. In my case chrome opens but then it hangs. Even not 
able to load url.
ChromeDriver version - v2.15
Chrome Browser version - 43.0.2357.81 m
Selenium Grid Version - 2.46.0
Please find attached logs of chromedriver and selenium grid

Original comment by jaidatta...@tieto.com on 9 Jun 2015 at 12:08

Attachments:

GoogleCodeExporter commented 9 years ago
@anilmuriyath, @jaidat.. , 
Would it be possible for you to share the webpage and testcode? This would help 
us to recreate the issue.
Also, how often do you see the issue? Are you using IDE or continuous 
integration tool to execute?

Original comment by gmanikp...@chromium.org on 9 Jun 2015 at 11:46

GoogleCodeExporter commented 9 years ago
Would it be possible for you to share the webpage and testcode?
It is difficult to share the system due the confidentiality of our business. 
But i am sharing the source code files where issue happening and even the 
screen shot.
Please revert back if you need anything further. We are almost blocked due to 
this issue. Our testsuite is almost 3000 test case bucket where we are able to 
consecutively run 100 testcases using selenium except the mentioned issue.

Also, how often do you see the issue?
We are able to consistently reproduce the issue every time when we do that 
specific operation.

Are you using IDE or continuous integration tool to execute?
We are using our own custom framework in java having selenium and TestNG.

We are getting error when the code flow reaches GuiOperationsHelper.java 
(clickwelcome method)  at "System.out.println("DRIVER PAGE SOURCE CURRENTLY  
from welcome \n\n\n 
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n\n\n"+driver.getPageSource());" 
statement.

Clickwelcome method is called by clickFinish() method of 
CreateLparWizardPage.java 

Original comment by anilmuri...@gmail.com on 10 Jun 2015 at 5:56

Attachments:

GoogleCodeExporter commented 9 years ago
@anilmuriyath,
Thanks for the details

I created a test page (see the attachment) as per your scenario and executed 
the below test code:-

WebDriver driver = new ChromeDriver();
driver.get("file:///path/to/Issue1121.html");
driver.findElement(By.id("win1")).click();

Set<String> win = driver.getWindowHandles();
Iterator<String> itr = win.iterator();
String parent = itr.next();
String child = itr.next();

//Switching to Second window
driver.switchTo().window(child);
System.out.println(driver.getTitle());
driver.findElement(By.id("win2")).click();

Set<String> win2 = driver.getWindowHandles();
Iterator<String> itr2 = win2.iterator();
String parent2 = itr2.next();
String child2 = itr2.next();
String child3 = itr2.next();

//Switching to Third window
driver.switchTo().window(child3);
System.out.println(driver.getTitle());
driver.findElement(By.id("testButton")).click(); //clicking on this button 
closes the third window

//Switching back to Second window
driver.switchTo().window(child2);  // if you comment this switch command, timed 
out will be seen and is expected.Because we are trying to perform action 
without switching

driver.findElement(By.id("textbox")).sendKeys("testing");
 driver.navigate().refresh();
System.out.println(driver.getPageSource());
System.out.println(driver.getTitle());

It works fine, no issue is observed.

After the window 3 closes, If you try to perform action on window 2 without 
switching it back to window 2, then Timed out message is seen. 

Can you please re-check your code and confirm if you are switching back 
correctly?

Original comment by gmanikp...@chromium.org on 11 Jun 2015 at 7:26

Attachments:

GoogleCodeExporter commented 9 years ago
Hi,

Sorry for the delay in reply. I believe we are doing a switch to window2 before 

doing any operation on window2. Please check the file GuiOperationsHelper.java 

line num : 180 where we are clearly doing to switch to window 

(driver.switchTo().window(pageHandlers.get(WelcomePage.class.getSimpleName()));)

Also immediately after this statement we are doing an SOP where we are getting

the window handle string same as window2 handle. Hence we are pretty sure that

driver is switched to window2 and then only we are doing any operation in that 

window.

Original comment by anilmuri...@gmail.com on 12 Jun 2015 at 9:26

GoogleCodeExporter commented 9 years ago
please ping me back, if you need any more info. Also this window switching is 
not

the only place we are seeing this issue. But during this particular window 
switching 

only we are consistently hitting it.

Original comment by anilmuri...@gmail.com on 12 Jun 2015 at 9:28

GoogleCodeExporter commented 9 years ago
Even we have tried without switching to window2 from window3(which is closed),

then also we didnt get the "renderer error", instead we got the error message 
as below 

which make sense also.

Window not found. The browser window may have been closed.
Command duration or timeout: 10 milliseconds
Build info: version: '2.46.0', revision: '87c69e2', time: '2015-06-04 16:17:10'
System info: host: 'IBM-N44QFUJM4N4', ip: '169.254.255.132', os.name: 'Windows 
7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_51'
Session ID: 050d4a0a-b255-4cef-9ee7-dc87409fe974
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=WINDOWS, acceptSslCerts=true, javascriptEnabled=true, 
cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, 
handlesAlerts=true, nativeEvents=true, webStorageEnabled=true, rotatable=false, 
locationContextEnabled=true, applicationCacheEnabled=true, 
takesScreenshot=true, version=31.0}] 

Original comment by anilmuri...@gmail.com on 12 Jun 2015 at 10:07

GoogleCodeExporter commented 9 years ago
From the stacktrace, it looks like you were trying on Firefox.
Can you please try the same with chromedriver?

Original comment by gmanikp...@chromium.org on 16 Jun 2015 at 5:31

GoogleCodeExporter commented 9 years ago
I have tried same on chrome and i am getting the same error message instead of 
renderer error. The error message is as below,

Reason for Failure:  Unable to Identify Window{platform=XP, 
acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, 
chrome={userDataDir=C:\Users\IBM_AD~1\AppData\Local\Temp\scoped_dir5972_25199}, 
rotatable=false, locationContextEnabled=true, mobileEmulationEnabled=false, 
version=43.0.2357.124, takesHeapSnapshot=true, cssSelectorsEnabled=true, 
databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, 
webStorageEnabled=true, nativeEvents=true, applicationCacheEnabled=false, 
takesScreenshot=true

Click Me to Show/Hide the Full Stack Trace
org.openqa.selenium.NoSuchWindowException: no such window: target window 
already closed from unknown error: web view not found (Session info: 
chrome=43.0.2357.124) (Driver info: chromedriver=2.15.322448 
(52179c1b310fec1797c81ea9a20326839860b7d3),platform=Windows NT 6.1 SP1 x86_64) 
(WARNING: The server did not provide any stacktrace information) Command 
duration or timeout: 2 milliseconds Build info: version: '2.46.0', revision: 
'87c69e2', time: '2015-06-04 16:17:10' System info: host: 'IBM-N44QFUJM4N4', 
ip: '169.254.255.132', os.name: 'Windows 7', os.arch: 'amd64', os.version: 
'6.1', java.version: '1.7.0_51' Session ID: fcc496d2e65b179c1a6a49d31eaf1448 
Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities 
[{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, 
chrome={userDataDir=C:\Users\IBM_AD~1\AppData\Local\Temp\scoped_dir5972_25199}, 
rotatable=false, locationContextEnabled=true, mobileEmulationEnabled=false, 
version=43.0.2357.124, takesHeapSnapshot=true, cssSelectorsEnabled=true, 
databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, 
webStorageEnabled=true, nativeEvents=true, applicationCacheEnabled=false, 
takesScreenshot=true}] at 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorI
mpl.java:57) at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorA
ccessorImpl.java:45) at 
java.lang.reflect.Constructor.newInstance(Constructor.java:526) at 
org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204) 
at 
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:
156) at 
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:605) at 
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:628) at 
org.openqa.selenium.remote.RemoteWebDriver.getCurrentUrl(RemoteWebDriver.java:32
5) at 
com.ibm.pmc.selenium.utility.GuiOperationsHelper.clickWelcome(GuiOperationsHelpe
r.java:171) at  

Original comment by anilmuri...@gmail.com on 17 Jun 2015 at 7:22

GoogleCodeExporter commented 9 years ago
anilmuriyath

we are unable to reproduce issue with the code provided in comment #4 

Can you please verify the map 'pageHandlers' is returning correct window handle 
for the window you are trying to switch.

Original comment by ssudunag...@chromium.org on 17 Jul 2015 at 11:33