1. 程式人生 > 其它 >js 隱藏滾動條_Web自動化測試:使用js語句

js 隱藏滾動條_Web自動化測試:使用js語句

技術標籤:js 隱藏滾動條

在selenium中,有方法可以執行js語句,這樣的話對於一些selenium中沒有的操作,或者實際編寫UI自動化中遇到的疑難雜症,多了另外一個解決思路!簡直像是打開了新世界的大門一樣。js本身是很強大的,也就是說我們在使用selenium庫中的操作以及方法之外,還可以用另一門專門針對前端的程式語言來輔助我們完成UI自動化指令碼,對於指令碼編寫應該具有很大幫助。

呼叫執行js語句的方法

同步請求執行js

driver.execute_script(script, *args)

script:要執行的js語句

*args:執行js語句時使用的一些引數

非同步請求執行js

driver.execute_async_script(script, *args)

script:要執行的js語句

*args:執行js語句時使用的一些引數

對於同步請求和非同步請求的區別:

同步請求指我們傳送一個請求後,需要服務端進行返回相應結果後才能進行接下來的操作;

非同步請求指我們傳送一個請求後,不需要服務端返回響應結果,直接進行接下來的操作(例如AJAX)。

示例演示:

對於js的功能,比較常用的就是改變元素的屬性值,經常用於一些隱藏的標籤需要操作時,將元素屬性改為可見。當然還有其它所瞭解的一些用法,例如:調整滾動條位置、高亮現實指定元素等,下面進入實際網頁演示下。

28b393c60889180e9ca12ad374ea71a9.png

整滾動條位置:

document.documentElement.scrollTop=9999

高亮顯示指定元素:

"arguments[0].setAttribute('style', arguments[1]);",ele, "background: green; border: 2px solid red;"

更改元素屬性值:

document.getElementById('s').placeholder='xxx';

或者:

"arguments[0].value='谷歌一下'",element

element:定位的元素

這裡需要注意的是,我們可以通過selenium所定位的元素物件,來傳遞到js語句中,作為一個js中的一個元素物件來進行操作。

演示程式碼

from selenium import webdriverfrom time import sleep driver = webdriver.Chrome()driver.get("http://www.runoob.com/js/js-tutorial.html") # 高亮顯示所定位的元素light_element = driver.find_element_by_id("s")js_sentence_light = "arguments[0].setAttribute('style', arguments[1]);"js_sentence_args = "color: yellow; border: 5px solid yellow;"driver.execute_script(js_sentence_light, light_element, js_sentence_args)sleep(3) # 更改頁面輸入框中的預設文字js_sentence_style = "document.getElementById('s').placeholder='我改變了搜尋輸入框預設文字';"driver.execute_script(js_sentence_style)sleep(3) # 改變滾動條位置js_sentence_position = "document.documentElement.scrollTop=9999"driver.execute_script(js_sentence_position)sleep(3)