使用python selenium 作自動化測試的時候其實我基本沒有使用過執行js,只是在後來使用selenium來爬蟲的時候使用到了,因此我在這裏也就拿出來簡單的介紹一下如何執行js。python
#-*- coding:utf-8 -*- from selenium import webdriver import time driver = webdriver.Chrome() js = 'alert("我是一個消息框!")' #這裏我定義一個js alert 彈出框 driver.execute_script(js) #這裏執行下上面的js,很簡單把定義好的js直接傳入便可。 time.sleep(3) driver.switch_to_alert().accept() #以前咱們學習過如何處理alert對話框,因此學以至用,這裏利用他在處理一下 time.sleep(2) driver.quit()
重點來啦!!!web
這裏咱們講一個實際的應用,經過操做js來控制滾動條,滾動條的操做就是依靠了js。chrome
#-*- coding:utf-8 -*- '''因爲瀏覽器的兼容性,因此我這邊增長了判斷,Chrome比較特殊''' # 滾動到底部 def Execute_Js_Scroll_Top(): if driver.name == "chrome": #獲取瀏覽器名稱 js = "var q=document.body.scrollTop=0" else: js = "var q=document.documentElement.scrollTop=0" return driver.execute_script(js) # 滾動底部 def Execute_Js_scroll_Foot(): if driver.name == "chrome": #獲取瀏覽器名稱 js = "var q=document.body.scrollTop=10000" else: js = "var q=document.documentElement.scrollTop=10000" return driver.execute_script(js) #----------------演示滾動操做---------------------- import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.maximize_window() driver.get("http://cn.bing.com") driver.find_element_by_id('sb_form_q').send_keys('selenium') driver.find_element_by_id('sb_form_go').send_keys(Keys.ENTER) time.sleep(2) #觀察效果 Execute_Js_scroll_Foot() #首先咱們滾動到底部 time.sleep(2) #觀察效果 Execute_Js_Scroll_Top() #再次滾動到頂部 time.sleep(2) #觀察效果 driver.quit()
看下效果,咱們已經對滾動條從上拉動到下,而後再次拉上來。瀏覽器