Selenium WebDriver C# Site web des Captures d'écran Avec ChromeDriver et FirefoxDriver
Quand je prends des captures d'écran avec ChromeDriver-je obtenir écrans avec la taille de ma fenêtre.
Quand je prends des captures d'écran avec FirefoxDriver j'obtiens ce que je veux, qui est un d'impression d'écran d'un site web.
ChromeDriver est déclaré comme ceci:
IWebDriver driver = new ChromeDriver();
FirefoxDriver est déclaré comme ceci:
IWebDriver driver = new FirefoxDriver();
Les deux pilotes exécuter un code identique:
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl(url);//url is a string variable
ITakesScreenshot screenshotDriver = driver as ITakesScreenshot;
Screenshot screenshot = screenshotDriver.GetScreenshot();
screenshot.SaveAsFile("c:/test.png", ImageFormat.Png);
ChromeDriver du test.png est de 1920x1099 résolution et contient uniquement le navigateur de la fenêtre d'affichage.
FirefoxDriver du test.png est de 1903x16559 résolution et contient l'ensemble de la page.
Je sais que GetScreenshot()
méthode ne retourne pas identiques tailles de résolution parce qu'elle a légèrement différentes mises en œuvre dans IEDriver, FirefoxDriver, OperaDriver, ChromeDriver.
Mes questions sont:
-
Pourquoi est-il une telle différence entre ChromeDriver et FirefoxDriver de
.GetScreenshot()
méthode, même quand ils utilisent une interface identique (ITakesScreenshot)? -
Est-il un moyen de faire ChromeDriver de
GetScreenshot()
méthode de retour de l'ensemble de la page web à l'écran au lieu de simplement la fenêtre d'affichage?
OriginalL'auteur user2429052 | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
nous ne pouvons pas obtenir la totalité de la page de capture d'écran avec ChromeDriver2, nous devons aller pour la mise en œuvre manuelle.J'ai modifié une méthode est disponible dans un blog qui fonctionne très bien avec ChromeDriver.
utiliser cette méthode comme suit :
Il y a un petit problème lors de l'exécution de ce script car il prend le contrôle du navigateur lorsque vous faites défiler vers le bas par le biais de la page web parce que c'est un javascript injection. En tout cas merci Roemer 🙂
elle aussi d'avoir un problème avec facebook.. ou yahoo ces wepages montre absolue div en haut lorsque vous faites défiler vers le bas et que les div répété.. n'importe comment fonctionne la plupart de ces pages web.
J'ai seulement été en mesure d'obtenir que cela fonctionne de manière fiable par la fixation de la hauteur et de la largeur avec les éléments suivants:
totalwidth1 = document.body.scrollWidth. totalHeight1 = document.body.scrollHeight. viewportWidth1 = document.documentElement.clientWidth. viewportHeight1 = document.documentElement.clientHeight.
Si vous parvenez à obtenir la bonne largeur et la hauteur du reste du code qui va faire le travail. Boz différents ppl essayer de les faire différemment, je pense que ça dépend du navigateur, sa version.
OriginalL'auteur S.Roshanth
J'ai nettoyé @Selvantharajah Roshanth réponse et ajouté un chèque de sorte qu'il n'essaiera pas de les coudre ensemble les captures d'écran qui sont déjà inscrits dans la fenêtre d'affichage.
((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, 0)")
OriginalL'auteur Lachlan Goodhew-Cook
Il semble comme si en plein écran les captures d'écran ne sont pas encore mises en œuvre dans le ChromeDriver, en raison de quelques erreurs lors de sa précédente mise en œuvre.
Source: https://code.google.com/p/chromedriver/issues/detail?id=294
J'ai récemment écrit un Sélénium en fonction de l'application à tester Internet Explorer UI et a constaté que:
Étudier à l'aide de Graphiques.CopyFromScreen méthode dans le Système.Le dessin comme une solution alternative jusqu'à ce que la fonctionnalité est implémentée dans google Chrome. Une fois que vous avez essayé .le Net de l'approche cependant, je ne pense pas que vous allez regarder en arrière =]
OriginalL'auteur DeveloperInDevelopment
J'ai trébuché à travers le même problème et ChromeDriver2 juste ne prend pas en charge.
J'ai donc créé un petit script qui vous permet de naviguer à travers la page, prend des captures d'écran et les points de suture tout ensemble.
Vous pouvez trouver le script de mon blog ici:
http://dev.flauschig.ch/wordpress/?p=341
OriginalL'auteur Roemer