3333import com .google .common .collect .ArrayListMultimap ;
3434import com .google .common .collect .Multimap ;
3535import org .apache .commons .lang3 .ArrayUtils ;
36+ import org .apache .logging .log4j .LogManager ;
37+ import org .apache .logging .log4j .Logger ;
3638import org .openqa .selenium .logging .LogEntries ;
3739import org .openqa .selenium .logging .LogEntry ;
3840import org .testar .environment .Environment ;
4850import org .testar .monkey .alayer .webdriver .Constants ;
4951import org .testar .monkey .alayer .webdriver .enums .WdRoles ;
5052import org .testar .monkey .alayer .webdriver .enums .WdTags ;
53+ import org .testar .monkey .alayer .windows .WinApiException ;
5154import org .testar .monkey .alayer .windows .WinProcess ;
5255import org .testar .monkey .alayer .windows .Windows ;
5356import org .testar .plugin .NativeLinker ;
5760import java .io .*;
5861import java .net .MalformedURLException ;
5962import java .net .URL ;
60- import java .nio .file .Files ;
61- import java .nio .file .Paths ;
6263import java .util .*;
6364import java .util .logging .Level ;
6465import java .util .regex .Matcher ;
6566import java .util .regex .Pattern ;
66- import java .util .stream .Stream ;
67-
6867import static org .testar .monkey .alayer .Tags .Blocked ;
6968import static org .testar .monkey .alayer .Tags .Enabled ;
7069
7170public class WebdriverProtocol extends GenericUtilsProtocol {
71+
72+ protected static final Logger logger = LogManager .getLogger ();
73+
7274 //Attributes for adding slide actions
7375 protected static double SCROLL_ARROW_SIZE = 36 ; // sliding arrows
7476 protected static double SCROLL_THICK = 16 ; //scroll thickness
75-
76- protected static Set <String > existingCssClasses = new HashSet <>();
7777
7878 // WedDriver settings from file:
7979 protected List <String > clickableClasses , typeableClasses , deniedExtensions , webDomainsAllowed ;
@@ -254,15 +254,12 @@ protected void beginSequence(SUT system, State state) {
254254 */
255255 @ Override
256256 protected State getState (SUT system ) throws StateBuildException {
257-
258- try {
259- WdDriver .waitDocumentReady ();
260- } catch (org .openqa .selenium .WebDriverException wde ) {
257+
258+ if (!WdDriver .waitDocumentReady ()) {
261259 LogSerialiser .log ("WEBDRIVER ERROR: Selenium Chromedriver seems not to respond!\n " , LogSerialiser .LogLevel .Critical );
262260 System .out .println ("******************************************************************" );
263261 System .out .println ("** WEBDRIVER ERROR: Selenium Chromedriver seems not to respond! **" );
264262 System .out .println ("******************************************************************" );
265- System .out .println (wde .getMessage ());
266263 system .set (Tags .IsRunning , false );
267264 }
268265
@@ -277,19 +274,17 @@ protected State getState(SUT system) throws StateBuildException {
277274 && system .get (Tags .PID , (long )-1 ) != (long )-1
278275 && WinProcess .procName (system .get (Tags .PID )).contains ("chrome" )
279276 && !WinProcess .isForeground (system .get (Tags .PID ))){
280-
281- WinProcess .toForeground (system .get (Tags .PID ), 0.3 , 100 );
282- LogSerialiser .log ("Trying to set Chrome Browser to Foreground... "
283- + WinProcess .procName (system .get (Tags .PID )) + "\n " );
284-
285- }
286277
287- if (settings .get (ConfigTags .Mode ) == Modes .Spy ) {
278+ String msg = "Trying to set the browser to Foreground... " + system .get (Tags .PID , -1L );
279+ logger .log (org .apache .logging .log4j .Level .INFO , msg );
288280
289- for (Widget w : state ) {
290- WdElement element = ((WdWidget ) w ).element ;
291- existingCssClasses .addAll (element .cssClasses );
292- }
281+ try {
282+ WinProcess .toForeground (system .get (Tags .PID ), 0.3 , 100 );
283+ } catch (WinApiException wae ) {
284+ logger .log (org .apache .logging .log4j .Level .WARN , wae );
285+ Verdict verdict = new Verdict (Verdict .Severity .NOT_RESPONDING , "Unable to bring the browser to foreground!" );
286+ state .set (Tags .OracleVerdict , verdict );
287+ }
293288 }
294289
295290 return state ;
@@ -390,33 +385,9 @@ protected void finishSequence(){
390385
391386 @ Override
392387 protected void stopSystem (SUT system ) {
393- if (settings .get (ConfigTags .Mode ) == Modes .Spy ) {
394-
395- try {
396- if (Settings .getSettingsPath () != null ) {
397- File folder = new File (Settings .getSettingsPath ());
398- File file = new File (folder , "existingCssClasses.txt" );
399- if (!file .exists ())
400- file .createNewFile ();
401-
402- Stream <String > stream = Files .lines (Paths .get (file .getCanonicalPath ()));
403- stream .forEach (line -> existingCssClasses .add (line ));
404- stream .close ();
405-
406- PrintWriter write = new PrintWriter (new FileWriter (file .getCanonicalPath ()));
407- for (String s : existingCssClasses )
408- write .println (s );
409- write .close ();
410- }
411-
412- } catch (IOException e ) {
413- e .printStackTrace ();
414- }
415- }
416-
417388 super .stopSystem (system );
418389 }
419-
390+
420391 @ Override
421392 protected void closeTestSession () {
422393 super .closeTestSession ();
0 commit comments