Le sélénium ChromeDriver expiré réception de message de rendu d'exception
Dans mon projet Java, je suis en utilisant le Sélénium pour le web automation. Je suis à l'aide de chromedriver v2.20 exécutable. Première "ChromeDriverService" est initialisée et qui est utilisé pour créer ChromeDriver comme, "nouvelle ChromeDriver(service, des capacités);". Aussi j'utilise BrowserMobProxy pour capturer toutes les requêtes web.
Dans mon test, j'ai navivate à certaines URLs plusieurs fois, après chaque navigation pilote implicitement attend quelques secondes, puis les sondages résultat.
Mais alors que l'Exécution il me donne l'Exception délai.
Dans mes recherches je suis tombé sur des solutions qui ne sont pas de travail pour moi:
- Au lieu de implicitlyWait utiliser Thread.sommeil
- Les remplacer par de nouveaux RemoteWebDriver(service de.getUrl(), capacités); par les nouvelles ChromeDriver(service, des capacités);
- Après la nouvelle ChromeDriver(...), attendre 1 sec à l'aide de Fil.sleep(1000);
Quelqu'un peut-il me dire pourquoi cette erreur se produit ? comment gérer cela ?
ShouldPostToServerTest.java:
@Test
public void setTest() throws Exception {
for (int i = 0; i < 3; i++) {
nav();
poll();
}
}
private void nav() {
String[] navTo = {"http://www.bestbuy.com","http://www.amazon.com"};
for (int n = 0; n < 30 / navTo.length; n++) {
for (String url : navTo) {
chrome.navigateTo(url);
chrome.waitFor(5000);
}
}
}
private void poll() {
int pollInterval = 1000;
int remaining = 120 * 1000;
boolean found = false;
while (remaining > 0) {
if (found) //populateResult(), omitted for now.
break;
chrome.waitFor(pollInterval);
remaining -= pollInterval;
}
}
Chrome.java:
public void navigateTo(String url) {
if (driver == null)
return;
driver.navigate().to(url); //TimeOut
}
public void waitFor(long waitFor) {
long start = System.currentTimeMillis();
driver.manage().timeouts().implicitlyWait(waitFor, TimeUnit.MILLISECONDS);
long duration = System.currentTimeMillis() - start;
long remaining = waitFor - duration;
if (remaining > 0) {
try {
Thread.sleep(remaining);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
Connecté à la cible VM, adresse: '127.0.0.1:57086', transport: 'socket'
Départ ChromeDriver 2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b) sur le port 13817
Seules les connexions locales sont autorisées.
SLF4J: Échec du chargement de la classe "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Défaut-opération (NOP) enregistreur de mise en œuvre
SLF4J: Voir http://www.slf4j.org/codes.html#StaticLoggerBinder pour plus de détails.
Vecteur de casser la protection est activée.
Vecteur de casser la protection est activée.
[723.497][GRAVE]: Timed out réception de message de moteur de rendu: 600.000
[1323.497][GRAVE]: Timed out réception de message de moteur de rendu: 600.000
Exception:
org.openqa.le sélénium.WebDriverException: erreur inconnue: ne peut pas
déterminer l'état de chargement de délai d'expiration: expirée réception de message
de convertisseur: 600.000 (Session d'info: chrome=45.0.2454.101)
(Pilote info: chromedriver=2.20.353124
(035346203162d32c80f1dce587c8154a1efa0c3b),la plate-forme=Linux
3.19.0-28-generic x86_64) (ATTENTION: Le serveur ne fournit pas toutes les stacktrace de l'information) de Commande de la durée ou de l'expiration: 1200.01 secondes
Construire info: version: '2.48.2', de la révision:
'41bccdd10cf2c0560f637404c2d96164b67d9d67', temps: "2015-10-09
13:08:06 " Système info: accueil: 'yogesh-ubuntu", ip: '127.0.1.1',
os.nom: "Linux", os.arc: amd64, os.version: '3.19.0-28-générique",
java.version: '1.8.0_60 Driver info:
org.openqa.le sélénium.le chrome.ChromeDriver Capacités
[{applicationCacheEnabled=false, orientable=false,
mobileEmulationEnabled=false,
chrome={userDataDir=/tmp/.com.google.Le Chrome.rgDfCi},
takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true,
hasTouchScreen=faux, version=45.0.2454.101,=plate-forme LINUX,
browserConnectionEnabled=false, nativeEvents=true,
acceptSslCerts=true, locationContextEnabled=true,
webStorageEnabled=true, browserName=chrome, takesScreenshot=true,
javascriptEnabled=true, cssSelectorsEnabled=true}] ID de Session:
a97aeb9a53ddd77e8edfac64019cc599 à
soleil.de réfléchir.NativeConstructorAccessorImpl.newInstance0(Native method)
au
soleil.de réfléchir.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
au
soleil.de réfléchir.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
à java.lang.de réfléchir.Constructeur.newInstance(Constructeur.java:422)
au
org.openqa.le sélénium.à distance.ErrorHandler.createThrowable(ErrorHandler.java:206)
au
org.openqa.le sélénium.à distance.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
au
org.openqa.le sélénium.à distance.RemoteWebDriver.execute(RemoteWebDriver.java:647)
au
org.openqa.le sélénium.à distance.RemoteWebDriver.get(RemoteWebDriver.java:311)
au
org.openqa.le sélénium.à distance.RemoteWebDriver$RemoteNavigation.(RemoteWebDriver.java:927)
au app.de base.les navigateurs.le chrome.Le Chrome.navigateTo(google Chrome.java:112) à
app.de base.extensions.les tests.ShouldPostToServerTest.nav(ShouldPostToServerTest.java:58)
au
app.de base.extensions.les tests.ShouldPostToServerTest.setTest(ShouldPostToServerTest.java:49)
OriginalL'auteur user2618875 | 2016-01-21
Vous devez vous connecter pour publier un commentaire.
Votre code fonctionne très bien. Peut-être êtes-vous à l'aide de vieux chrome pilote. Je suggère d'utiliser les dernières exe de chrome pilote.
Mais votre code fonctionne très bien lorsque je l'ai fait exécuter
@pratapvaibhav19 merci pour les efforts. Mais si vous essayez d'exécuter plusieurs fois il vous donnera de l'exception ci-dessus. Aussi, si vous augmentez la valeur liquidative nombre de boucles for (int n = 0; n < 30 / navTo.longueur; n++) de 30 à 50. Il produit de l'exception ci-dessus.
essayez de faire une chose - downgrade de votre chrome pilote pour une version 2.12.301325(win 32)
Je suis allé à 2.24 et cela a fonctionné
OriginalL'auteur pratapvaibhav19