Selenium實戰(二)——調用JavaScript之execute_script()方法


  1.瀏覽器滾動條的拖動,不能依靠WebDriver提供的API來實現,用於調整瀏覽器滾動條位置的JavaScript代碼如下:

1 window.scrollTo(0,450);

 

window.scrollTo()方法用於設置瀏覽器窗口滾動條的水平位置和垂直位置,第一個參數表示水平左邊距,第二個參數表示垂直上邊距。相應的python代碼如下:

 1 from selenium import webdriver
 2 from time import sleep
 3 driver = webdriver.Firefox()
 4 driver.set_window_size(800, 600)
 5 driver.get("http://baidu.com")
 6 driver.find_element_by_id("kw").send_keys("selenium")
 7 driver.find_element_by_id("su").click()
 8 sleep(2)
 9 # 通過JavaScript設置瀏覽器窗口的滾動條位置
10 js = "window.scrollTo(100,450);"
11 driver.execute_script(js)
12 sleep(5)
13 driver.quit()

 

 

運行之后的結果展示:

當然,JavaScript的作用不僅僅體現在瀏覽器滾動條的操作上,還可以在頁面中的textarea文本框中輸入內容。文本框的HTML代碼:

1 <textarea id="id" style="width: 98%" cols="50" rows="5" class="textarea"></textarea>

 

相應的python代碼:

1 text = "input text"
2 js = "document.getElementById('id').value='" + text + "';"
3 driver.execute_script(js)

 

首先定義輸入的內容text,然后將text與JavaScript代碼通過“+”進行拼接,這樣做的目的是為了方便自定義輸入內容。

  2.處理HTML5視頻播放

  IE9+、Firefox、Opera、Chrome都支持HTML5定義的<video>新元素,下面例子簡單自動播放了一段<video>視頻:

 1 from selenium import webdriver
 2 from time import sleep
 3 driver = webdriver.Chrome()
 4 driver.set_window_size(800, 600)
 5 
 6 driver.get("http://videojs.com")
 7 sleep(5)
 8 video = driver.find_element_by_id("preview-player_html5_api")
 9 
10 # 返回播放文件地址
11 url = driver.execute_script("return arguments[0].currentSrc;", video)
12 print(url)
13 
14 # 播放視頻
15 print("start")
16 driver.execute_script("arguments[0].play", video)
17 
18 # 播放15s
19 sleep(15)
20 
21 # 暫停視頻
22 print("stop")
23 driver.execute_script("arguments[0].pause()", video)
24 sleep(5)
25 driver.quit()

 

 

 JavaScript有個內置對象——arguments,包含了函數調用的參數數組,[0]表示取對象的第一個值,currentSrc方法返回當前音視頻的URL,若未設置,則返回空字符串。load()、play()、pause()控制視頻的加載、播放和暫停。


免責聲明!

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



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