Comment puis-je attraper le Sélénium Erreurs à l'aide de WebDriverJS

Donc je suis en utilisant le JavaScript de la mise en œuvre de Sélénium, WebDriverJS. Comme avec n'importe quel navigateur web automatisation de l'obstacle le plus important est de mettre le code de ralentir suffisamment longtemps pour que les éléments de la page à charger. Ma solution est: est-ce

pour chaque élément que je veux interagir avec j'ai un bloc de code comme ceci

xpath = "//div[@id='gs_lc0']/input[@id='gbqfq']"
driver.wait(function(){
    return waitForElement(xPath,driver);
});
try{
    element = driver.findElement(webdriver.By.xpath(xPath));
}catch(e){
    console.log("Wait Function False Positive")
}
element.sendKeys("Let Me Google That For You\n";

avec ce que la fonction répété dans l'attente de la fonction

var waitForElement = function(path, driver){
    console.log("try: " + path)
    try{
        driver.findElement(webdriver.By.xpath(path));
    }catch (e){
        console.log("FAILURE")
        return false;
    }
    console.log("SUCCESS")
    return true;
}

maintenant ce code fonctionne parfois, mais othertimes il ne sera pas. Je suppect la fonction d'attente ne fonctionne pas du tout et je suis juste chanceux temps de chargement de la page web. Afin de tester cette théorie, j'ai ajouté l'essai de fonction pour le bloc de code, je ne peux même pas obtenir le "NoSuchElementError" d'être pris. De sorte que le poids de ma question est de savoir s'il existe une autre façon de former les tryCatch fonction de sorte que ces erreurs seront pris.

Ici aussi, est ce que la tête de mon code ressemble à si vous souhaitez une reproduction intégrale

var webdriver = require('selenium-webdriver'), element

var driver = new webdriver.Builder().
    withCapabilities(webdriver.Capabilities.chrome()).
    build();

driver.get('google.com');
InformationsquelleAutor Arcv2 | 2015-02-20