Răsfoiți Sursa

Fix #87: implement is_hidden in WebElement.pm

Daniel Gempesaw 11 ani în urmă
părinte
comite
a3e23f1191
3 a modificat fișierele cu 35 adăugiri și 2 ștergeri
  1. 18 0
      lib/Selenium/Remote/WebElement.pm
  2. 11 1
      t/02-webelement.t
  3. 6 1
      t/www/index.html

+ 18 - 0
lib/Selenium/Remote/WebElement.pm

@@ -324,6 +324,24 @@ sub is_displayed {
     return $self->_execute_command($res);
 }
 
+=head2 is_hidden
+
+ Description:
+    Determine if an element is currently hidden.
+
+ Output:
+    BOOLEAN - Whether the element is hidden.
+
+ Usage:
+    $elem->is_hidden();
+
+=cut
+
+sub is_hidden {
+    my ($self) = @_;
+    return ! $self->is_displayed();
+}
+
 =head2 drag
 
  Description:

+ 11 - 1
t/02-webelement.t

@@ -111,7 +111,17 @@ IMAGES: {
         is($ret->{'x'}, ($x+200), 'Moved to new x coord');
         is($ret->{'y'}, ($y+200), 'Moved to new y coord');
     }
-    ;
+}
+
+VISIBILITY: {
+    $driver->get("$website/index.html");
+    $elem = $driver->find_element('displayed', 'id');
+    ok($elem->is_displayed(), 'Elements are displayed by default.');
+    ok(!$elem->is_hidden(), 'Elements are not hidden by default.');
+
+    $elem = $driver->find_element('hidden', 'id');
+    ok(!$elem->is_displayed(), 'Hidden elements are not displayed.');
+    ok($elem->is_hidden(), 'Hidden elements are hidden.');
 }
 
 QUIT: {

+ 6 - 1
t/www/index.html

@@ -64,5 +64,10 @@ document.write(" and with document.write again");
 <div id="containsSomeDiv">
   <div name="someDiv">Nested</div>
 </div>
+
+<div id="visibility">
+  <span id="displayed">I am displayed.</span>
+  <span id="hidden" style="display: none;">I am hidden.</span>
+</div>
 </body>
-</html>
+</html>