Quelqu'un peut-il expliquer Capture d'écran en Sélénium?
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
//Now you can do whatever you need to do with it, for example copy somewhere
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
Pouvez tout me dire que
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE)
getScreenShotAs
est la méthode dans le TakesScreenshot
Interface......
(TakesScreenshot)driver
, De quoi il s'agit??? pouvez-vous nous expliquer peu?
(TakesScreenshot)pilote, vous êtes Ici à la définition de la classe, 'TakesScreenshot" juste comme un objet de mettre en œuvre getScreenshotAs fonction. Promenade à travers la classe pour observer le concept
getScreenshotAs() vous permet de prendre une capture d'écran
getScreenshotAs() vous permet de prendre une capture d'écran
OriginalL'auteur ChanGan | 2014-02-19
Vous devez vous connecter pour publier un commentaire.
La
WebDriver
interface ne contient pas legetScreenshotAs()
méthode, car il est possible d'avoir un webdriver incapable de prendre des captures d'écran - par exemple dans la mémoire des pilotes qui n'ont pas le rendu de la page, commeHtmlUnitDriver
.Pour avoir de la méthode, le pilote doit mettre en œuvre les
TakesScreenshot
interface qui le rend capable de ... ... réaliser des captures d'écran.Par conséquent, vous devez indiquer au programme d'une certaine manière que vous voulez prendre une capture d'écran et que vous êtes absolument sûr que vous pouvez le faire. C'est ce que l'
(TakesScreenshot)driver
partie est pour. En Java, il est appelé casting et il se traduit littéralement par "je sais que cettedriver
instance est en mesure de prendre une capture d'écran, veuillez jeter auxTakesScreenshot
type."Si votre plâtre réussit, tout est beau et le
driver
objet sera lancé au moment de l'exécution d'une instance deTakesScreenshot
. Si votre conversion échoue, cependant, vous aurez unClassCastExcepion
au moment de l'exécution.Quelques exemples:
OriginalL'auteur Petr Janeček
Comme vous pourrez le lire ici il indique que le pilote peut prendre une capture d'écran. Il est nécessaire de faire le casting parce que le WebDriver interface ne contient pas le getScreenshotAs méthode bien qu'il est mis en œuvre par la plupart des classes qui implémentent cette interface comme FirefoxDriver.
OriginalL'auteur rafaborrego