Есть аспект, которий виполняет кое что перед виполнением методов заанотированих @LogIt. Код аспекта:
package org.steam.gambler.spring.logging;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class GamblingLogs {
@Before("@annotation(LogIt)")
public void beforeGamble(ProceedingJoinPoint joinPoint){
System.out.print(joinPoint.getClass());
try {
joinPoint.proceed();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
//SiteScriptInt temp = AppContext.context.getBean(joinPoint.getClass())
}
}
Сама аннотация:
package org.steam.gambler.spring.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LogIt {
}
Один с заанотированих классов:
package org.steam.gambler.script;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.springframework.beans.factory.annotation.Autowired;
import org.steam.gambler.exceptions.NotNowException;
import org.steam.gambler.exceptions.SiteLoginException;
import org.steam.gambler.loader.Element;
import org.steam.gambler.spring.annotation.LogIt;
import org.steam.gambler.steam.SteamService;
public class GreenHunt implements SiteScriptInt {
private String URL = "https://www.greenhunt.gg/";
@Autowired
private WebDriver driver;
@Autowired
private SteamService steam;
@LogIt
public void gamble() throws NotNowException, InterruptedException, SiteLoginException {
login();
Element.isLoaded("//*[@id=\"page\"]/main/div[1]/ul/li[5]/a");
Thread.sleep(1000);
driver.findElement(By.xpath("//*[@id=\"page\"]/main/div[1]/ul/li[5]/a")).click();
if(!isActive()){
throw new NotNowException(URL);
}
else{
Thread.sleep(2000);
driver.findElement(By.xpath("//*[@id=\"page\"]/main/div[2]/div[5]/div[4]")).click();
}
}
private void login() throws InterruptedException, SiteLoginException {
driver.get(URL);
if(!isLoggedIn()){
Thread.sleep(1000);
((JavascriptExecutor) driver).executeScript("arguments[0].click()",driver.findElement(By.xpath("//*[@id=\"chat\"]/form/div/a/strong")));
steam.loginToSite();
}
Thread.sleep(2000);
if(!isLoggedIn())
throw new SiteLoginException(URL);
}
private boolean isLoggedIn(){
if(driver.findElements(By.xpath("//*[@id=\"page\"]/main/div[1]/div/div[1]")).size()==1){
return true;
}
else{
return false;
}
}
private boolean isActive() throws InterruptedException {
Thread.sleep(2000);
if(driver.findElements(By.xpath("//*[@id=\"page\"]/main/div[2]/div[5]/div[4]")).size()==1){
return true;
}
else{
return false;
}
}
public String getURL() {
return URL;
}
}
Все работает, кроме аспекта, он ничего в консоль не кидает.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть многим известный компонент PhotoViewК проекту его подключил и проверил работоспособность
Есть массив состоящий из 5 символов вот таких ["1","2","3","4","5"] Как удалить допустим элемент с индексом 3 чтобы выводило уже не так 1,2,3,4,5, вот так...
Я хочу воспользоваться сервисом Firebase test lab, выбираю Тестирование на базе Instrumentation, далее чтоб начать тестирование он просит загрузить два...
Какое правило в sun_checksxml нужно добавить, чтобы игнорировалaсь ошибка