2017-08-16 1 views
0

J'exécute des tests automatisés en utilisant le sélénium et C# et en utilisant PhantomJS comme un navigateur sans tête pour exécuter les tests. Certains tests ont récemment commencé à échouer de manière incohérente après l'ajout d'un nouveau code google analytics sur le site. Les tests échouent parfois à trouver des éléments de formulaire sur la page mais lorsqu'ils sont exécutés dans un navigateur normal comme le chrome, ils passent à chaque fois. Les tests échouent généralement sur une attente jusqu'à la déclaration visible. Le code google analytics ne peut pas être supprimé. J'ai débogué en obtenant une copie du code html en cours d'exécution lorsque les tests échouent et que le code a eu tous les éléments après le retrait de la tête et certaines balises de script sont également manquantes dans la tête. Il y avait même une balise html de fermeture après la tête. Je me demandais juste si quelqu'un avait déjà vu des problèmes similaires et savait comment il pourrait être résolu sans avoir à supprimer les analyses.PhantomJS ne trouve pas d'éléments sur la page html que Chrome et Firefox peuvent utiliser

Répondre

0

Vous n'avez même pas besoin d'utiliser PhantomJs. Comme PhantomJs n'est pas tellement maintenir ces jours. Vous pouvez utiliser le chromedriver en mode sans tête.

il vous suffit d'ajouter des options comme sans tête comme ci-dessous: -

chromeOptions.addArguments("--headless"); 

Le code complet en Java apparaît comme ci-dessous: -

System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe"); 
ChromeOptions chromeOptions = new ChromeOptions(); 
chromeOptions.addArguments("--headless"); 
chromeOptions.addArguments("--start-maximized"); 
WebDriver driver = new ChromeDriver(chromeOptions); 
driver.get("https://google.com"); 
+0

a considéré que comme une solution mais je ne pourrais pas » t obtenir une réponse définitive si le chrome sans tête supporte encore les captures d'écran. Fonction très pratique pour le débogage des tests ayant échoué. – Geoff

+0

Oui, vous pouvez utiliser la capture d'écran en mode sans tête. –

+0

Comme je l'ai dit plus tôt, il y a un problème de maintenance avec phantomJS .. tout en essayant de mettre un peu d'attente et ensuite essayer le résultat. alors que votre question n'est pas claire sur la valeur de l'attribut/DOM que vous rencontrez. ajoutez le HTML et le code que vous avez essayé .. Voici comment fonctionne stackoverflow –