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

  • 相关阅读:
    使用SQL查询所有数据库名和表名
    vue打包时给静态资源增加版本号
    mac笔记本好用的快捷键汇总
    jquery项目好用的插件汇总
    通过js禁止输入空格(试用场景:当用字符串拼接插入dom节点时,onkeyup这些方法都不好使可用这个)
    textarea和type=number输入去空格限制字数问题
    用websocket建立远程连接(vue)
    配置本地服务器
    webpack打包路径问题
    序列号和反序列化==》nodejs之querystring模块(尼玛,太强大,好用耶)
  • 原文地址:https://www.cnblogs.com/luohuasheng/p/10845467.html
Copyright © 2011-2022 走看看