zoukankan      html  css  js  c++  java
  • selenium常用的API(七)判断元素是否可见

    web页面不可见的元素虽不在页面上显示,但是存在于DOM树中,这些元素webdriver也能找到。

    element.is_displayed()方法可以判断元素是否在页面上显示,如果显示返回True,否则返回False。

    用于测试的HTML代码:

    <html> 
    <head> 
    <title>HTML中显示与隐藏元素</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript"> 
        function showAndHidden1(){ 
            var div1=document.getElementById("div1"); 
            var div2=document.getElementById("div2"); 
            if(div1.style.display=='block') div1.style.display='none'; 
            else div1.style.display='block'; 
            if(div2.style.display=='block') div2.style.display='none'; 
            else div2.style.display='block'; 
        } 
        function showAndHidden2(){ 
            var div3=document.getElementById("div3"); 
            var div4=document.getElementById("div4"); 
            if(div3.style.visibility=='visible') div3.style.visibility='hidden'; 
            else div3.style.visibility='visible'; 
            if(div4.style.visibility=='visible') div4.style.visibility='hidden'; 
            else div4.style.visibility='visible'; 
        } 
    </script> 
    </head> 
    <body> 
        <div>display:元素不占用页面位置</div> 
        <div id="div1" style="display:block;">DIV 1</div> 
        <div id="div2" style="display:none;">DIV 2</div> 
        <input id="button1" type="button" onclick="showAndHidden1();" value="DIV切换" /> 
        <hr> 
        <div>visibility:元素占用页面位置</div> 
        <div id="div3" style="visibility:visible;">DIV 3</div> 
        <div id="div4" style="visibility:hidden;">DIV 4</div> 
        <input id="button2" type="button" onclick="showAndHidden2();" value="DIV切换" /> 
    </body> 
    </html>

    调用API的代码

    # encoding=utf-8
    import unittest
    import time
    from selenium import webdriver
    
    class VisitUrl(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Chrome(executable_path="e:\chromedriver")
    
        def test_getWebElementIsDisplayed(self):
            # 访问自定义的html网页
            self.driver.get( "http://127.0.0.1/test_visible.html")
            # 通过id="div2"找到第二个div元素
            div2 = self.driver.find_element_by_id("div2")
            # 判断第二个div元素是否在页面上可见
            print div2.is_displayed()
    
            # 点击第一个切换div按钮,将第二个div显示在页面上
            self.driver.find_element_by_id("button1").click()
            # 再次判断第二个div元素是否可见
            print div2.is_displayed()
    
            # 通过id="div4"找到第四个div元素
            div4 = self.driver.find_element_by_id("div4")
            # 判断第四个div元素是否在页面上可见
            print div4.is_displayed()
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == '__main__':
        unittest.main()
  • 相关阅读:
    P2048 [NOI2010]超级钢琴
    [LOJ#6468.] 魔法
    [牛客小白月赛18] Forsaken的数列
    [JSOI2011]柠檬
    [TJOI2015]组合数学
    【单调队列优化】[CF372C] Watching Fireworks is Fun
    【线段树】[Luogu P4198]楼房修建
    Python资源
    人生的几个阶段
    两种解读,生活的意义和方法
  • 原文地址:https://www.cnblogs.com/zeke-python-road/p/9368627.html
Copyright © 2011-2022 走看看