python selenium-webdriver 執行js (八)


使用python selenium 做自動化測試的時候其實我基本沒有使用過執行js,只是在后來使用selenium來爬蟲的時候使用到了,所以我在這里也就拿出來簡單的介紹一下如何執行js。

  • execute_script 方法定義:

  

  • 因為比較簡單所以我就不會太特別的細致介紹,所以我們看一個簡單的例子
#-*- 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()

重點來啦!!!

   這里我們講一個實際的應用,通過操作js來控制滾動條,滾動條的操作就是依靠了js。

 

#-*- 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()

看下效果,我們已經對滾動條從上拉動到下,然后再次拉上來。


免責聲明!

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



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