輕鬆自動化---selenium-webdriver(python) (八)

來源:互聯網
上載者:User

標籤:建議   登陸使用者   pat   學習網站   遇到   abs   firefox   asc   直接   

http://www.testclass.net/  測試教程網,專業的selenium 學習網站。

本節重點:

調用js方法

  • execute_script(script, *args)

在當前視窗/架構 同步執行javaScript

指令碼:JavaScript的執行。

*參數:適用任何JavaScript指令碼。

使用:

driver.execute_script(‘document.title’)

 

 

使快播登陸使用者名稱輸入框標紅顯示

#coding=utf-8from selenium import webdriverimport timedriver = webdriver.Firefox()driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fvod.kuaibo.com%2F%3Ft%3Dhome")#給使用者名稱的輸入框標紅js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"#調用jsdriver.execute_script(js)time.sleep(3)driver.find_element_by_id("user_name").send_keys("username")driver.find_element_by_id("user_pwd").send_keys("password")driver.find_element_by_id("dl_an_submit").click()time.sleep(3)driver.quit()

js解釋:

q=document.getElementById(\"user_name\")

元素q的id 為user_name

q.style.border=\"1px solid red\

元素q的樣式,邊框為1個像素紅色

 

 

隱藏元素

js.html

<html>    <head>      <meta http-equiv="content-type" content="text/html;charset=utf-8" />      <title>js</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(){          $(‘#tooltip‘).tooltip({"placement": "right"});        });      </script>    </head>    <body>      <h3>js</h3>      <div class="row-fluid">        <div class="span6 well">                  <a id="tooltip" href="#" data-toggle="tooltip" title=" selenium-webdriver(python)">hover to see tooltip</a>          <a class="btn">Button</a>        </div>            </div>            </body>    <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>  </html>

(保持html檔案與執行指令碼在同一目錄下)

 

執行js一般有兩種情境:

  • 一種是在頁面上直接執行JS
  • 另一種是在某個已經定位的元素上執行JS

 

#coding=utf-8from selenium import webdriver import time,osdriver = webdriver.Firefox()file_path =  ‘file:///‘ + os.path.abspath(‘js.html‘)driver.get(file_path)#######通過JS 隱藏選中的元素##########第一種方法:driver.execute_script(‘$("#tooltip").fadeOut();‘)time.sleep(5)#第二種方法:button = driver.find_element_by_class_name(‘btn‘)driver.execute_script(‘$(arguments[0]).fadeOut()‘,button)time.sleep(5)driver.quit()

 

js解釋:

arguments對象,它是調用對象的一個特殊屬性,用來引用Arguments對象。Arugments對象就像數組。

fadeOut() 方法使用淡出效果來隱藏被選元素,假如該元素是隱藏的。

 

PS:可以看到js 可以做selenium 做不到的事情,但是在什麼樣的自動化的時候才能(或必須)要js幫忙,我還沒遇到過。不過js可以selenium完成更強大的功能,這是不容置疑的。

另外,之前沒有學過JS ,所以js代碼很陌生。如果有時間的話也建議各位同學補充這方面的知識。UI自動化離不開前端技術。

 

 

--------------------------

學習更多selenium 內容:

 「功能測試自動化」匯總

輕鬆自動化---selenium-webdriver(python) (八)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.