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:

  1. Au lieu de implicitlyWait utiliser Thread.sommeil
  2. Les remplacer par de nouveaux RemoteWebDriver(service de.getUrl(), capacités); par les nouvelles ChromeDriver(service, des capacités);
  3. 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)

Dans mon cas, si ma fenêtre est arriver fermé en raison de certaines bouton fermer dans l'application, je suis en cours d'exécution dans cette erreur. une idée de comment il peut être résolu?

OriginalL'auteur user2618875 | 2016-01-21