25
25
import java .util .List ;
26
26
import java .util .concurrent .Callable ;
27
27
28
- import net .sourceforge .htmlunit .corejs .javascript .Undefined ;
29
-
30
28
import org .openqa .selenium .By ;
31
29
import org .openqa .selenium .Dimension ;
32
30
import org .openqa .selenium .ElementNotVisibleException ;
52
50
import org .w3c .dom .NamedNodeMap ;
53
51
54
52
import com .gargoylesoftware .htmlunit .ScriptResult ;
53
+ import com .gargoylesoftware .htmlunit .html .DomElement ;
55
54
import com .gargoylesoftware .htmlunit .html .DomNode ;
56
55
import com .gargoylesoftware .htmlunit .html .DomText ;
57
56
import com .gargoylesoftware .htmlunit .html .HtmlButton ;
71
70
import com .google .common .base .Strings ;
72
71
import com .google .common .base .Throwables ;
73
72
73
+ import net .sourceforge .htmlunit .corejs .javascript .Undefined ;
74
+
74
75
75
76
public class HtmlUnitWebElement implements WrapsDriver ,
76
77
FindsById , FindsByLinkText , FindsByXPath , FindsByTagName ,
77
78
FindsByCssSelector , Locatable , WebElement {
78
79
79
80
protected final HtmlUnitDriver parent ;
80
- protected final HtmlElement element ;
81
+ protected final DomElement element ;
81
82
private static final char nbspChar = 160 ;
82
83
private static final String [] blockLevelsTagNames =
83
84
{"p" , "h1" , "h2" , "h3" , "h4" , "h5" , "h6" , "dl" , "div" , "noscript" ,
@@ -128,7 +129,7 @@ public class HtmlUnitWebElement implements WrapsDriver,
128
129
129
130
private String toString ;
130
131
131
- public HtmlUnitWebElement (HtmlUnitDriver parent , HtmlElement element ) {
132
+ public HtmlUnitWebElement (HtmlUnitDriver parent , DomElement element ) {
132
133
this .parent = parent ;
133
134
this .element = element ;
134
135
}
@@ -166,10 +167,10 @@ public void submit() {
166
167
submitForm ((HtmlForm ) element );
167
168
return ;
168
169
} else if ((element instanceof HtmlSubmitInput ) || (element instanceof HtmlImageInput )) {
169
- element .click ();
170
+ (( HtmlElement ) element ) .click ();
170
171
return ;
171
172
} else if (element instanceof HtmlInput ) {
172
- HtmlForm form = element .getEnclosingForm ();
173
+ HtmlForm form = (( HtmlElement ) element ) .getEnclosingForm ();
173
174
if (form == null ) {
174
175
throw new NoSuchElementException ("Unable to find the containing form" );
175
176
}
@@ -297,12 +298,12 @@ private void switchFocusToThisIfNeeded() {
297
298
if (jsEnabled &&
298
299
!oldActiveEqualsCurrent &&
299
300
!isBody ) {
300
- oldActiveElement .element .blur ();
301
+ (( HtmlElement ) oldActiveElement .element ) .blur ();
301
302
}
302
303
} catch (StaleElementReferenceException ex ) {
303
304
// old element has gone, do nothing
304
305
}
305
- element .focus ();
306
+ (( HtmlElement ) element ) .focus ();
306
307
}
307
308
308
309
void sendKeyDownEvent (CharSequence modifierKey ) {
@@ -317,7 +318,7 @@ private void sendSingleKeyEvent(CharSequence modifierKey, String eventDescriptio
317
318
verifyCanInteractWithElement ();
318
319
switchFocusToThisIfNeeded ();
319
320
HtmlUnitKeyboard keyboard = (HtmlUnitKeyboard ) parent .getKeyboard ();
320
- keyboard .performSingleKeyAction (getElement (), modifierKey , eventDescription );
321
+ keyboard .performSingleKeyAction (( HtmlElement ) getElement (), modifierKey , eventDescription );
321
322
}
322
323
323
324
@ Override
@@ -329,7 +330,7 @@ public void sendKeys(CharSequence... value) {
329
330
switchFocusToThisIfNeeded ();
330
331
331
332
HtmlUnitKeyboard keyboard = (HtmlUnitKeyboard ) parent .getKeyboard ();
332
- keyboard .sendKeys (element , getAttribute ("value" ), keysContainer );
333
+ keyboard .sendKeys (( HtmlElement ) element , getAttribute ("value" ), keysContainer );
333
334
334
335
if (isInputElement () && keysContainer .wasSubmitKeyFound ()) {
335
336
submit ();
@@ -540,7 +541,7 @@ protected HtmlUnitDriver getParent() {
540
541
return parent ;
541
542
}
542
543
543
- protected HtmlElement getElement () {
544
+ protected DomElement getElement () {
544
545
return element ;
545
546
}
546
547
@@ -685,7 +686,7 @@ private List<WebElement> findChildNodes(List<WebElement> allElements) {
685
686
List <WebElement > toReturn = new LinkedList <WebElement >();
686
687
687
688
for (WebElement current : allElements ) {
688
- HtmlElement candidate = ((HtmlUnitWebElement ) current ).element ;
689
+ DomElement candidate = ((HtmlUnitWebElement ) current ).element ;
689
690
if (element .isAncestorOf (candidate ) && element != candidate ) {
690
691
toReturn .add (current );
691
692
}
@@ -765,9 +766,9 @@ public List<WebElement> findElementsByLinkText(String linkText) {
765
766
assertElementNotStale ();
766
767
767
768
String expectedText = linkText .trim ();
768
- List <? extends HtmlElement > htmlElements = element .getHtmlElementsByTagName ("a" );
769
+ List <? extends DomElement > htmlElements = (( HtmlElement ) element ) .getHtmlElementsByTagName ("a" );
769
770
List <WebElement > webElements = new ArrayList <>();
770
- for (HtmlElement e : htmlElements ) {
771
+ for (DomElement e : htmlElements ) {
771
772
if (expectedText .equals (e .getTextContent ().trim ()) && e .getAttribute ("href" ) != null ) {
772
773
webElements .add (getParent ().newHtmlUnitWebElement (e ));
773
774
}
@@ -791,7 +792,7 @@ public WebElement findElementByPartialLinkText(String linkText) {
791
792
public List <WebElement > findElementsByPartialLinkText (String linkText ) {
792
793
assertElementNotStale ();
793
794
794
- List <? extends HtmlElement > htmlElements = element .getHtmlElementsByTagName ("a" );
795
+ List <? extends HtmlElement > htmlElements = (( HtmlElement ) element ) .getHtmlElementsByTagName ("a" );
795
796
List <WebElement > webElements = new ArrayList <>();
796
797
for (HtmlElement e : htmlElements ) {
797
798
if (e .getTextContent ().contains (linkText )
@@ -817,7 +818,7 @@ public WebElement findElementByTagName(String name) {
817
818
public List <WebElement > findElementsByTagName (String name ) {
818
819
assertElementNotStale ();
819
820
820
- List <HtmlElement > elements = element .getHtmlElementsByTagName (name );
821
+ List <HtmlElement > elements = (( HtmlElement ) element ) .getHtmlElementsByTagName (name );
821
822
List <WebElement > toReturn = new ArrayList <>(elements .size ());
822
823
for (HtmlElement element : elements ) {
823
824
toReturn .add (parent .newHtmlUnitWebElement (element ));
@@ -864,7 +865,7 @@ protected void assertElementNotStale() {
864
865
public String getCssValue (String propertyName ) {
865
866
assertElementNotStale ();
866
867
867
- return getEffectiveStyle (element , propertyName );
868
+ return getEffectiveStyle (( HtmlElement ) element , propertyName );
868
869
}
869
870
870
871
private String getEffectiveStyle (HtmlElement htmlElement , String propertyName ) {
0 commit comments