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()
