Caused by: org.xml.sax.SAXParseException; lineNumber: 235; columnNumber: 38; Invalid byte 2 of 2-byte UTF-8 sequence
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:404)
... 42 more
А причем здесь фабрика к способу снятия скриншотов? Из официальной Selenium документации:
// RemoteWebDriver does not implement the TakesScreenshot class
// if the driver does have the Capabilities to take a screenshot
// then Augmenter will add the TakesScreenshot methods to the instance
WebDriver augmentedDriver = new Augmenter().augment(driver);
File screenshot = ((TakesScreenshot)augmentedDriver).
getScreenshotAs(OutputType.FILE);
я вообще не вижу ни каких проблем с прокриплением картинки в Allure
вот пример как это можно реализовать в TestNG как-то игрался когда изучал возможности отчета
Такой вот еще вопрос о лиснерах:
Согласно этой доке - TestNG подключаю лиснер.
Создаю в проекте файл src/main/resources/META-INF/services/org.testng.ITestNGListener
В файле пишу референс класса который имплементит лиснер - com.me.someframework.core.listeners.OnFailureListener
Вот с таким содержанием работет:
public class OnFailureListener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult tr) {
System.out.println("INSIDE onTestFailure");
}
}
Теперь вопрос - как передать туда драйвер?
Вот базовый класс от которого наследуются все тестовые классы:
public abstract class BaseTest {
protected WebDriver driver;
protected PropertyStorage propertyStorage = PropertyStorage.getInstance();
protected Screenshoter screenshoter;
DriverProvider driverProvider = new DriverProvider();
@BeforeClass(alwaysRun = true)
public void beforeClass() {
driverProvider.createDriver();
}
@BeforeMethod(alwaysRun = true)
public void beforeMethod() {
driver = driverProvider.getDriver();
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.manage().deleteAllCookies();
}
@AfterMethod(alwaysRun = true)
public void afterMethod() {
driver.manage().deleteAllCookies();
}
@AfterClass(alwaysRun = true)
public void afterClass() {
driver.quit();
}
}