【Selenium9】操作按鈕


1、處理按鈕組button group

  首先找到button group的包裹view,然后層級定位查找具體按鈕

用到的HTML文檔
    <html>
        <head>
            <meta http-equiv="content-type" content="text/html;charset=utf-8" />
            <title>button group</title>     
            <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />      
            <script type="text/javascript">
                $(document).ready(function(){
                    $('.btn').click(function(){
                        alert($(this).text());
                    });
                });         
            </script>
        </head>
        <body>
            <h3>button group</h3>
            <div class="row-fluid">
                <div class="span3">     
                    <div class="well">
                        <div class="btn-toolbar">
                            <div class="btn-group">
                                <div class="btn">first</div>
                                <div class="btn">second</div>
                                <div class="btn">third</div>
                            </div>
                        </div>
                    </div>          
                </div>      
            </div>      
        </body>
        <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    </html>
代碼
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import os
if 'HTTP_PROXY' in os.environ: del os.environ['HTTP_PROXY']
dr=webdriver.Firefox()
file_path='file:///'+os.path.abspath('buggon_group.html')
dr.get(file_path)
time.sleep(2)
buttons=dr.find_element_by_class_name('btn-group').find_element_by_class_name('btn')
for btn in buttons:
if btn.text=='second': print 'find second button'
sleep(1)
dr.quit()

2、處理button dropdown

  即點擊按鈕彈出下拉菜單,首先點擊按鈕,等待下拉菜單顯示,然后層級定位獲取下拉菜單中的選項

3、處理navs

  即類似tab的導航欄,一般實現是ul+li,先定位ul,再定位li,后通過link解決問題

用到的HTML文檔
    <html>
        <head>
            <meta http-equiv="content-type" content="text/html;charset=utf-8" />
            <title>Navs</title>     
            <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />      
            <script type="text/javascript">
                $(document).ready(
                    function(){
                        $('.nav').find('li').click(function() {
                            $(this).parent().find('li').removeClass('active');
                            $(this).addClass('active');
                        });
                    }
                );
            </script>
        </head>
        <body>
            <h3>Navs</h3>
            <div class="row-fluid">
                <div class="span3">     
                    <ul class="nav nav-pills">
                        <li class="active">
                            <a href="#">Home</a>
                        </li>
                        <li><a href="#">Content</a></li>
                        <li><a href="#">About</a></li>
                    </ul>
                </div>      
            </div>      
        </body>
        <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    </html>

代碼
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import os
if 'HTTP_PROXY' in os.environ: del os.environ['HTTP_PROXY']
dr=webdriver.Firefox()
file_path='file:///'+os.path.abspath('navs.html')
dr.get(file_path)
time.sleep(2)
dr.find_element_by_class_name('nav').find_element_by_link_text('About').click()  #方法一層級定位
sleep(1)
dr.find_element_by_link_test('Home').click()  #方法二直接定位
sleep(1)
dr.quit()

4、處理面包屑

  即類似站內目錄的功能,一般是獲取層級關機及當前層級,

用到的HTML文檔
    <html>
        <head>
            <meta http-equiv="content-type" content="text/html;charset=utf-8" />
            <title>breadcrumb</title>       
            <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />      
            <script type="text/javascript">
                $(document).ready(
                    function(){

                    }
                );
            </script>
        </head>
        <body>
            <h3>breadcrumb</h3>
            <div class="row-fluid">
                <div class="span3">     
                    <ul class="breadcrumb">
                        <li><a href="#">Home</a> <span class="divider">/</span></li>
                        <li><a href="#">Library</a> <span class="divider">/</span></li>
                        <li class="active">Data</li>
                    </ul>
                </div>      
            </div>      
        </body>
        <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    </html>

代碼
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import os
dr=webdriver.Firefox()
file_path='file:///'+os.path.abspath('breadcrumb.html')
dr.get(file_path)
time.sleep(2)
dr.find_element_by_class_name('breadcrumb').find_element_by_link_text('Home').click()  #層級定位
sleep(1)
dr.quit()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM