1. 程式人生 > >selenium呼叫JavaScript定位元素及事件操作

selenium呼叫JavaScript定位元素及事件操作

JavaScript 事件

HTML 事件是發生在 HTML 元素上的事情。
當在 HTML 頁面中使用 JavaScript 時, JavaScript 可以觸發這些事件。

JavaScript 可以做什麼?

事件可以用於處理表單驗證,使用者輸入,使用者行為及瀏覽器動作:

頁面載入時觸發事件
頁面關閉時觸發事件
使用者點選按鈕執行動作
驗證使用者輸入內容的合法性
等等 …

具體請檢視:http://www.runoob.com/js/js-events.html

頁面經常有一些操作是selenium中無法實現的,我們可以通過呼叫JavaScript去實現,還有一些元素是無法通過selenium常用的方法去定位到的,好了廢話不多說直接上程式碼;

#coding=utf8
import unittest  #呼叫unittest框架
from selenium import webdriver
from time import sleep


class Tests(unittest.TestCase):
    """
    測試用例
    ···
    def setUp(self):
        driver = webdriver.Chrome()
        # driver = webdriver.Firefox()
        driver.implicitly_wait(10)
        driver.
maximize_window() driver.get('http://www.baidu.com/') self.driver = driver def tearDown(self): sleep(2) self.driver.quit() def test1(self): driver = self.driver # 使用js定位元素 el = driver.execute_script('return document.getElementById("kw")'
) el.clear() el.send_keys('Python') # 使用js滾動螢幕 driver.execute_script("scrollBy(0,innerHeight)")#向下滾動 sleep(1) driver.execute_script("scrollBy(0,-innerHeight)")#向上滾動 el = driver.find_element_by_link_text('百度首頁') # 使用js點選元素, 第二個引數是要點選的元素物件 driver.execute_script("arguments[0].click();", el)