• 章节十一、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”问我,群里都是软件行业的小伙伴可以相互一起学习讨论。

  • 相关阅读:
    买车注意事项
    关节炎的成因
    改变seekbar的游标图片大小
    十大安卓应用商店推广渠道排行榜
    无线 WIFI 的13个信道频率范围
    了解RFC协议号
    图形图像专业术语
    Phpcms之L()函数
    PHPCMS V9 加密规则
    Sublime 快捷键
  • 原文地址:https://www.cnblogs.com/luohuasheng/p/10845467.html
Copyright © 2020-2023  润新知