OpenKeyWord  Build_ID: 457, Datum: 01.02.2020 07:45:48
Dont repeat yourself. - Do it once and only once!
FrmSeFirefox.java
1 package okw.gui.frames;
2 
3 import okw.gui.adapter.selenium.SeBrowserWindow;
4 
5 
6 import javax.xml.xpath.XPathExpressionException;
7 
8 
9 import org.openqa.selenium.firefox.FirefoxBinary;
10 import org.openqa.selenium.firefox.FirefoxDriver;
11 import org.openqa.selenium.firefox.FirefoxOptions;
12 
13 import okw.OKW;
14 import okw.OKW_Memorize_Sngltn;
15 
22 @OKW (FN="Firefox")
23 public class FrmSeFirefox extends SeBrowserWindow
24 {
25 
30 
31  @Override
32  public void SelectWindow()
33  {
34  }
35 
45  public void StartApp()
46  {
47  LogFunctionStartDebug( "StartApp" );
48 
49  try
50  {
51 
52  String OKWGeckodriverPath;
53 
54  if ( ( OKWGeckodriverPath = System.getProperty( "webdriver.gecko.driver" ) ) != null )
55  {
56  LogPrint( "System.Property: webdriver.gecko.driver is set: '" + OKWGeckodriverPath + "'" );
57  MEM.set( "System.Property: webdriver.gecko.driver", OKWGeckodriverPath );
58  }
59  else if ( ( OKWGeckodriverPath = System.getenv( "OKWGeckodriverPath" ) ) != null )
60  {
61  LogPrint( "System.Property: webdriver.gecko.driver is not set" );
62  LogPrint( "EnvVar: OKWGeckodriverPath='" + OKWGeckodriverPath + "'" );
63  System.setProperty( "webdriver.gecko.driver", OKWGeckodriverPath );
64 
65  MEM.set( "System.Property: webdriver.gecko.driver", OKWGeckodriverPath );
66  MEM.set( "OKW EnvVar: OKWGeckodriverPath", OKWGeckodriverPath );
67  }
68  else
69  {
70  LogPrint( "System.Property: webdriver.gecko.driver is not set" );
71  LogWarning( "Enviroment Variable 'OKWGeckodriverPath' is not set!" );
72 
73  String os_name = System.getProperty( "os.name" );
74 
75  switch ( os_name )
76  {
77  case "Mac OS X":
78  System.setProperty( "webdriver.gecko.driver", "/Applications/geckodriver" );
79  MEM.set( "System Propety: OKWGeckodriverPath", System.getProperty( "webdriver.gecko.driver" ) );
80  break;
81  default:
82  LogError( "Unknown Property: 'os.name'= '" + System.getProperty( "os.name" ) + "'" );
83  break;
84  }
85 
86  }
87 
88  FirefoxBinary firefoxBinary = new FirefoxBinary();
89  // firefoxBinary.addCommandLineOptions("--headless");
90  //System.setProperty("webdriver.gecko.driver", "/opt/geckodriver");
91  FirefoxOptions firefoxOptions = new FirefoxOptions();
92  firefoxOptions.setBinary(firefoxBinary);
93 
94  mySeDriver.setDriver( new FirefoxDriver(firefoxOptions) );
95  }
96  catch (XPathExpressionException e)
97  {
98  throw new RuntimeException( e );
99  }
100  finally
101  {
102  LogFunctionEndDebug();
103  }
104  }
105 
106  public void StopApp()
107  {
108  LogFunctionStartDebug( "StopApp()" );
109 
110  // mySeDriver.getDriver().close();
111  mySeDriver.getDriver().quit();
112 
113  try
114  {
115  Runtime rt = Runtime.getRuntime();
116 
117  if (System.getProperty("os.name").toLowerCase().indexOf("windows") > -1)
118  {
119  LogPrintDebug( "before windows taskkill geckodriver " );
120  //rt.exec("taskkill Chrome");
121  }
122  else
123  {
124  LogPrintDebug( "before linux/osx pkill -f geckodriver" );
125  Process p = rt.exec("pkill -f geckodriver");
126  p.waitFor();
127  //rt.exec("killall chromedriver");
128  }
129 
130  //Thread.sleep( 3000 );
131  }
132  // catch (InterruptedException | IOException e)
133  catch ( Exception e)
134  {
135  LogPrintDebug( "before catch (InterruptedException | IOException e)" );
136  // TODO Auto-generated catch block
137  e.printStackTrace();
138  LogPrintDebug( "after catch (InterruptedException | IOException e)" );
139  }
140  finally
141  {
142  LogPrintDebug( "finaly.. " );
143  LogFunctionEndDebug();
144  }
145  }
146 
147 
148 }
okw.gui.frames.FrmSeFirefox
Definition: FrmSeFirefox.java:23
okw.OKW_Memorize_Sngltn
OKW_Memorize ist die Speicher-Klasse hinter den Merke*-Schlüsselwörter.
Definition: OKW_Memorize_Sngltn.java:73
okw.gui.frames.FrmSeFirefox.StartApp
void StartApp()
https://github.com/mdn/headless-examples/blob/master/headlessfirefox-gradle/src/main/java/com/mozilla...
Definition: FrmSeFirefox.java:45
okw.OKW_Memorize_Sngltn.set
void set(String fpsKey, String fpsValue)
Setzt/Merkt sich das MemKey/Value-Paar.
Definition: OKW_Memorize_Sngltn.java:452
okw.gui.adapter.selenium.SeBrowserWindow
Definition: SeBrowserWindow.java:58
okw.OKW_Memorize_Sngltn.getInstance
static OKW_Memorize_Sngltn getInstance()
Diese Methode gibt die einzige Instanz dieser Klasse zurück.
Definition: OKW_Memorize_Sngltn.java:198