OpenKeyWord  Version: 426, Datum:
SeURL.cs
1 #region Header
2 /*
3  ==============================================================================
4  Author: Zoltan Hrabovszki <zh@openkeyword.de>
5 
6  Copyright © 2012, 2013, 2014, 2015 IT-Beratung Hrabovszki
7  www.OpenKeyWord.de
8  ==============================================================================
9 
10  This file is part of OpenKeyWord.
11 
12  OpenKeyWord is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version 3 of the License, or
15  (at your option) any later version.
16 
17  OpenKeyWord is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with OpenKeyWord. If not, see <http://www.gnu.org/licenses/>.
24 
25  Diese Datei ist Teil von OpenKeyWord.
26 
27  OpenKeyWord ist Freie Software: Sie können es unter den Bedingungen
28  der GNU General Public License, wie von der Free Software Foundation,
29  Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren
30  veröffentlichten Version, weiterverbreiten und/oder modifizieren.
31 
32  OpenKeyWord wird in der Hoffnung, dass es nützlich sein wird, aber
33  OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite
34  Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
35  Siehe die GNU General Public License für weitere Details.
36 
37  Sie sollten eine Kopie der GNU General Public License zusammen mit
38  OpenKeyWord erhalten haben. Wenn nicht, siehe <http://www.gnu.org/licenses/>.
39 */
40 #endregion Header
41 
42 namespace OKW.GUI.Selenium
43 {
44  using System;
45  using System.Collections.Generic;
46 
47  using OKW.GUI;
48  using OKW.Log;
49 
50  // : IOKW_SimpleDataObj
66  public class SeURL
67  {
68  #region Constructors
69 
70  public SeURL()
71  {
72  }
73 
74  #endregion Constructors
75 
76  protected Log.Logger MyLogger = Log.Logger.Instance;
77  protected OKW_Wait4Value MyWait4Value = new OKW_Wait4Value();
78 
79  #region Methods
80 
92  public virtual List<string> GetTooltip()
93  {
94  bool bOK = false;
95  List<string> lvLsReturn = new List<string>();
96 
97  Logger.Instance.LogFunctionStartDebug("GetTooltip");
98 
99  try
100  {
101  // TODO: SeURL.GetTooltip: Ausnahme-Meldung auslagern
102  throw new NotSupportedException("GetTooltip not supported by SeURL-class!");
103  }
104  finally
105  {
106  if (bOK)
107  {
108  Logger.Instance.LogFunctionEndDebug(lvLsReturn);
109  }
110  else
111  {
112  Logger.Instance.LogFunctionEndDebug();
113  }
114  }
115 
116  return lvLsReturn;
117  }
118 
128  public virtual List<string> GetValue()
129  {
130  bool bOK = false;
131  List<string> lvLsReturn = new List<string>();
132 
133  Logger.Instance.LogFunctionStartDebug("GetValue");
134 
135  try
136  {
137  // Get Value from TextField and Putt this into theReturn List<string>
138  lvLsReturn.Add(SeDriver.Instance.driver.Url);
139  bOK = true;
140  }
141  finally
142  {
143  if (bOK)
144  {
145  Logger.Instance.LogFunctionEndDebug(lvLsReturn);
146  }
147  else
148  {
149  Logger.Instance.LogFunctionEndDebug();
150  }
151  }
152 
153  return lvLsReturn;
154  }
155 
165  public virtual List<string> LogValue()
166  {
167  bool bOK = false;
168  List<string> lvLsReturn = new List<string>();
169 
170  try
171  {
172  MyLogger.LogFunctionStartDebug("LogValue");
173  lvLsReturn = this.GetValue();
174  bOK = true;
175  }
176  finally
177  {
178  if (bOK)
179  {
180  MyLogger.LogFunctionEndDebug(lvLsReturn);
181  }
182  else
183  {
184  MyLogger.LogFunctionEndDebug();
185  }
186  }
187 
188  return lvLsReturn;
189  }
190 
204  public virtual List<string> MemorizeValue()
205  {
206  List<string> lvLsReturn = new List<string>();
207  bool bOK = false;
208 
209  try
210  {
211  MyLogger.LogFunctionStartDebug("Memorize");
212  lvLsReturn = this.GetValue();
213  bOK = true;
214  }
215  finally
216  {
217  if (bOK)
218  {
219  MyLogger.LogFunctionEndDebug(lvLsReturn);
220  }
221  else
222  {
223  MyLogger.LogFunctionEndDebug();
224  }
225  }
226 
227  return lvLsReturn;
228  }
229 
239  public virtual void SetFocus()
240  {
241  Logger.Instance.LogFunctionStartDebug("SetFocus");
242 
243  try
244  {
245  // TODO: SeURL.SetFocus: Ausnahme-Meldung auslagern
246  throw new NotSupportedException("GetTooltip not supported by SeURL-class!");
247  }
248  finally
249  {
250  Logger.Instance.LogFunctionEndDebug();
251  }
252 
253  return;
254  }
255 
266  public virtual void SetValue(List<string> fps_Values)
267  {
268  Logger.Instance.LogFunctionStartDebug("SetValue", "fps_Values", fps_Values[0]);
269 
270  try
271  {
272  SeDriver.Instance.driver.Navigate().GoToUrl(fps_Values[0]);
273  }
274  finally
275  {
276  Logger.Instance.LogFunctionEndDebug();
277  }
278  }
279 
292  public virtual void TypeKey(List<string> fps_Values)
293  {
294  Logger.Instance.LogFunctionStartDebug("TypeKey", "fps_Values", fps_Values[0]);
295 
296  try
297  {
298  SeDriver.Instance.driver.Navigate().GoToUrl(fps_Values[0]);
299  }
300  finally
301  {
302  Logger.Instance.LogFunctionEndDebug();
303  }
304 
305  return;
306  }
307 
319  public virtual List<string> VerifyValue(List<string> fplsExpectedValue)
320  {
321  List<string> lvLsReturn = new List<string>();
322  bool bOK = false;
323 
324  try
325  {
326  MyLogger.LogFunctionStartDebug("Memorize", "fplsExpectedValue", fplsExpectedValue[0]);
327 
328  // GetValue als delegaten definieren
329  OKW_Wait4Value.ListStringCallBack myCallBack = this.GetValue;
330 
331  // Nun mit dem erwarteten Sollwert und GetValue ggf. auf den Wert Warten.
332  lvLsReturn = MyWait4Value.Wait4Value(fplsExpectedValue, myCallBack);
333 
334  bOK = true;
335  }
336  finally
337  {
338  if (bOK)
339  {
340  MyLogger.LogFunctionEndDebug(lvLsReturn);
341  }
342  else
343  {
344  MyLogger.LogFunctionEndDebug();
345  }
346  }
347 
348  return lvLsReturn;
349  }
350 
351  #endregion Methods
352  }
353 }
virtual void TypeKey(List< string > fps_Values)
Setzt den Wert der URL im aktiven Browser/BrowserChild und navigiert zur gegebenen Seite...
Definition: SeURL.cs:292
static SeDriver Instance
Gibt die Instance für die einzige Instanz dieser Klasse zurück. Hinweis:
Definition: SeDriver.cs:93
virtual void SetValue(List< string > fps_Values)
Setzt den Wert der URL im aktiven Browser und navigiert zur gegebene Seite.
Definition: SeURL.cs:266
delegate List< string > ListStringCallBack()
Callback Muster string Variante.
virtual List< string > GetTooltip()
Liest den aktuellen Tooltip-Wert der URL aus.
Definition: SeURL.cs:92
Klasse Implementiert das URL-Eingabefeld der Browser. Die Klasse besitz keinen locator. Die URL wird via SeDriver.Instance.driver.Url gelesen und geschrieben. Die Menge der Verwendbaren Schlüsselwörter ist begrenzt, weil die Selenium WebDriver API nur beschränkt an alle Funktionalitäten und Eigenschaften des URL-TextFeldes eines Browser herankommt.
Definition: SeURL.cs:66
OKW_Wait4Value ist die zetrale Klasse, die für das Warten auf GUI eigenschaften zuständig ist...
virtual List< string > MemorizeValue()
Ermittelt den Wert, im Allgemeinen den textuellen Inhalt eines Objektes für das Schlüsselwort MerkeWe...
Definition: SeURL.cs:204
string Wait4Value(string fpExpected, StringCallBack fpCallMeBack)
Methode liest den Wert aus der deligierten Methode fpCallMeBack wartet ggf. und liefert den Wert zurü...
virtual void SetFocus()
Setzt den Focus in das aktuelle URL-TextFeld.
Definition: SeURL.cs:239
virtual List< string > LogValue()
Ermittelt den Wert des Objktes für das Schlüsselwort Loggewert.
Definition: SeURL.cs:165
virtual List< string > GetValue()
Liest den aktuellen Wert der URL aus.
Definition: SeURL.cs:128
virtual List< string > VerifyValue(List< string > fplsExpectedValue)
Ermittelt den textuellen Inhalt des markierten Textes für Prüfewert.
Definition: SeURL.cs:319
Pattern Singelton.
Definition: SeDriver.cs:56
Definition: Core.cs:40