python selenium-webdriver 執行js (八)

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

  • 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()

重點來啦!!!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()

看下效果,咱們已經對滾動條從上拉動到下,而後再次拉上來。瀏覽器

相關文章
相關標籤/搜索