zoukankan      html  css  js  c++  java
  • 章节十一、9-操作隐藏元素

    一、显示隐藏的元素

    在使用selenium进行自动化时,可能会遇到隐藏的元素,列如下图中,我们点击“隐藏按钮”,输入框就会被隐藏,点击“显示按钮”,输入框就会显示出来.

             

    输入框在显示和隐藏时,标签属性会发生变化:

    例如输入框隐藏时diaplay的属性值为“none”:

    显示时diaplay的属性值为“block”:

    注意:

    因为开发人员在开发网站时对于隐藏元素时使用的方法不同,可能就会导致以下两种结果:

    1、不管元素是否在页面上是否被隐藏我们都可以使用相同的路径来操作他,但是元素隐藏时就算查找到我们也无法操作它。

    2、当元素为隐藏状态时,我们无法定位到它。

    二、实例演示

    以下演示操作以图中页面为例(图中的页面是本地的网页,小伙伴们如果需要可以加入555191854下载或者找其它的网站进行练习):

     1 package basicweb;
     2 
     3 import java.util.concurrent.TimeUnit;
     4 
     5 import org.junit.jupiter.api.AfterEach;
     6 import org.junit.jupiter.api.BeforeEach;
     7 import org.junit.jupiter.api.Test;
     8 import org.openqa.selenium.By;
     9 import org.openqa.selenium.WebDriver;
    10 import org.openqa.selenium.WebElement;
    11 import org.openqa.selenium.chrome.ChromeDriver;
    12 
    13 class ElementDisplayed {
    14     
    15     WebDriver driver;
    16     String url;
    17     
    18     @BeforeEach
    19     void setUp() throws Exception {
    20         driver = new ChromeDriver();
    21         url = "C:\Users\acer\eclipse-workspace\SeleniumPractise\PracticePage.html";
    22         driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
    23         driver.manage().window().maximize();
    24         driver.get(url);
    25     }
    26 
    27     @Test
    28     void test() throws Exception {
    29         WebElement el = driver.findElement(By.id("displayed-text"));
    30 //        isDisplayed可以判断文本框是否显示
    31         System.out.println("文本框是否显示:"+el.isDisplayed());
    32         
    33         Thread.sleep(2000);
    34 //        点击隐藏按钮
    35         WebElement hideButton = driver.findElement(By.id("hide-textbox"));
    36         hideButton.click();
    37         System.out.println("点击了隐藏按钮");
    38         System.out.println("文本框是否显示:"+el.isDisplayed());
    39 
    40         Thread.sleep(2000);
    41 //        点击显示按钮
    42         WebElement showButton = driver.findElement(By.id("show-textbox"));
    43         showButton.click();
    44         System.out.println("点击了显示按钮");
    45         System.out.println("文本框是否显示:"+el.isDisplayed());
    46         }
    47     
    48     @AfterEach
    49     void tearDown() throws Exception {
    50         Thread.sleep(2000);
    51         driver.quit();
    52     }
    53 
    54 
    55 }

     如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴可以相互一起学习讨论。

  • 相关阅读:
    SSM框架整合步骤
    Spring-data-jpa
    allure定制报告
    pytest常用选项
    staticmethod&classmethod&property
    __slot__
    python的参数传递
    闭包和装饰器
    内置高阶函数
    str
  • 原文地址:https://www.cnblogs.com/luohuasheng/p/10845467.html
Copyright © 2011-2022 走看看