轉載: http://www.cnblogs.com/fnng/p/3230768.htmljavascript
本節重點:css
調用js方法html
在當前窗口/框架 同步執行javaScript前端
腳本:JavaScript的執行。java
*參數:適用任何JavaScript腳本。python
使用:jquery
driver.execute_script(‘document.title’)web
使快播登錄用戶名輸入框標紅顯示:ajax
#coding=utf-8bootstrap
from selenium import webdriver
import time
driver = 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\";"
#調用js
driver.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通常有兩種場景:
#coding=utf-8
from selenium import webdriver
import time,os
driver = 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自動化離不開前端技術。