Skip to content

Instantly share code, notes, and snippets.

@tzkmx
Last active February 10, 2023 16:53
Show Gist options
  • Save tzkmx/d9f89985358b78216fdabb1a4197e858 to your computer and use it in GitHub Desktop.
Save tzkmx/d9f89985358b78216fdabb1a4197e858 to your computer and use it in GitHub Desktop.
ejemplos de pageObject con ChatGPT

Para hacer que el método takeScreenshot sea privado, se puede utilizar la notación private antes de la declaración del método:

private void takeScreenshot() {
  // Código para tomar la captura de pantalla
}

Luego, para invocar este método al principio y al final de cada método check, se puede agregar una llamada a takeScreenshot en los primeros y últimos renglones de cada método:

public void checkA() {
  takeScreenshot();
  // Resto del código para verificar A
  takeScreenshot();
}

public void checkB() {
  takeScreenshot();
  // Resto del código para verificar B
  takeScreenshot();
}
class PageObject:
def __init__(self, driver):
self.driver = driver
def takeScreenshot(self):
# Código para tomar una captura de pantalla
pass
def checkTitle(self, expectedTitle):
self.takeScreenshot()
# Verificación previa del título
assert self.driver.title == expectedTitle, f"Expected title: {expectedTitle}. Actual title: {self.driver.title}"
self.takeScreenshot()
def checkHeader(self, expectedHeader):
self.takeScreenshot()
# Verificación previa del encabezado
header = self.driver.find_element_by_id("header")
assert header.text == expectedHeader, f"Expected header: {expectedHeader}. Actual header: {header.text}"
self.takeScreenshot()
def checkFooter(self, expectedFooter):
self.takeScreenshot()
# Verificación previa del pie de página
footer = self.driver.find_element_by_id("footer")
assert footer.text == expectedFooter, f"Expected footer: {expectedFooter}. Actual footer: {footer.text}"
self.takeScreenshot()
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
public class PageObject {
private WebDriver driver;
private static final Path SCREENSHOTS_DIR = Paths.get("screenshots");
public PageObject(WebDriver driver) {
this.driver = driver;
}
public void checkPageTitle(String expectedTitle) {
takeScreenshot("before-checkPageTitle");
String actualTitle = driver.getTitle();
assertThat(actualTitle).isEqualTo(expectedTitle);
takeScreenshot("after-checkPageTitle");
}
public void checkElementText(By selector, String expectedText) {
takeScreenshot("before-checkElementText");
WebElement element = driver.findElement(selector);
String actualText = element.getText();
assertThat(actualText).isEqualTo(expectedText);
takeScreenshot("after-checkElementText");
}
public void checkElementAttribute(By selector, String attribute, String expectedValue) {
takeScreenshot("before-checkElementAttribute");
WebElement element = driver.findElement(selector);
String actualValue = element.getAttribute(attribute);
assertThat(actualValue).isEqualTo(expectedValue);
takeScreenshot("after-checkElementAttribute");
}
private void takeScreenshot(String name) {
if (!Files.exists(SCREENSHOTS_DIR)) {
try {
Files.createDirectory(SCREENSHOTS_DIR);
} catch (IOException
<?php
class PageObject
{
use Dusk;
private function takeScreenshot()
{
$filePath = "/path/to/screenshot/" . date('YmdHis') . ".png";
$this->browse(function ($browser) use ($filePath) {
$browser->driver->takeScreenshot($filePath);
});
}
public function checkTitle($expectedTitle)
{
$this->takeScreenshot();
$this->browse(function ($browser) use ($expectedTitle) {
$actualTitle = $browser->driver->getTitle();
assert($actualTitle === $expectedTitle, "Expected title to be '$expectedTitle', but was '$actualTitle'");
});
$this->takeScreenshot();
}
public function checkMetaDescription($expectedDescription)
{
$this->takeScreenshot();
$this->browse(function ($browser) use ($expectedDescription) {
$actualDescription = $browser->driver->findElement(WebDriverBy::cssSelector('meta[name=description]'))->getAttribute('content');
assert($actualDescription === $expectedDescription, "Expected description to be '$expectedDescription', but was '$actualDescription'");
});
$this->takeScreenshot();
}
}
public class PageObject {
private WebDriver driver;
public PageObject(WebDriver driver) {
this.driver = driver;
}
public void checkPageTitle(String expectedTitle) {
String actualTitle = driver.getTitle();
assertThat(actualTitle).isEqualTo(expectedTitle);
}
public void checkElementText(By selector, String expectedText) {
WebElement element = driver.findElement(selector);
String actualText = element.getText();
assertThat(actualText).isEqualTo(expectedText);
}
public void checkElementAttribute(By selector, String attribute, String expectedValue) {
WebElement element = driver.findElement(selector);
String actualValue = element.getAttribute(attribute);
assertThat(actualValue).isEqualTo(expectedValue);
}
}
<?php
use Laravel\Dusk\Browser;
use Laravel\Dusk\TestCase;
class PageObject extends TestCase
{
private function takeScreenshot(Browser $browser, $name)
{
$browser->screenshot($name);
}
public function checkTitle(Browser $browser, $title)
{
$this->takeScreenshot($browser, 'before-check-title.png');
$browser->assertTitle($title);
$this->takeScreenshot($browser, 'after-check-title.png');
}
public function checkSee(Browser $browser, $text)
{
$this->takeScreenshot($browser, 'before-check-see.png');
$browser->assertSee($text);
$this->takeScreenshot($browser, 'after-check-see.png');
}
public function checkDontSee(Browser $browser, $text)
{
$this->takeScreenshot($browser, 'before-check-dont-see.png');
$browser->assertDontSee($text);
$this->takeScreenshot($browser, 'after-check-dont-see.png');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment