1. 程式人生 > >selenium 處理js行為的方法

selenium 處理js行為的方法

我們在進行ui自動化的時候,經常會遇到如果直接進行click操作,會發現無法點選成功。通過對瀏覽器的開發者工具發現其實這個click是呼叫了js方法的。所以在處理某些普通操作無法得到正常結果的時候,我們得通過js方式來完成。
1、js點選

profile = Selenium::WebDriver::Firefox::Profile.new
$driver = Selenium::WebDriver.for :firefox, :profile=>profile
$driver.execute_script("arguments[0].click()", element)

2、js輸入

$driver.execute_script("return arguments[0].value='#{string_text}'", @@element)

3、js輸入後引起其他的引數變化

$driver.execute_script("return arguments[0].value='#{string_text}'", @@element)
$driver.execute_script("$(arguments[0]).change()", @@element)

4、js控制滾動條,這是一個非常實用的方法,可以確保你要操作的元素在可見的範圍內

$driver.execute_script("arguments[0].scrollIntoView(false);"
, @@element); $driver.execute_script("return arguments[0].scrollTop=#{new_scroll_top}", element)

PS:示例程式碼實用的Ruby,java同樣的道理。

相關推薦

selenium 處理js行為方法

我們在進行ui自動化的時候,經常會遇到如果直接進行click操作,會發現無法點選成功。通過對瀏覽器的開發者工具發現其實這個click是呼叫了js方法的。所以在處理某些普通操作無法得到正常結果的時候,我們得通過js方式來完成。 1、js點選 profile

Python Selenium 處理JS指令碼

前言 selenium並不是萬能的,有時候頁面上操作無法實現的,這時候就需要藉助JS來完成了。 常見場景: 當頁面上的元素超過一屏後,想操作螢幕下方的元素,是不能直接定位到,會報元素不可見的。 這時候需要藉助滾動條來拖動螢幕,使被操作的元素顯示在當前的

Python爬蟲處理JS翻頁的一種方法,利用Ajax非同步請求

前端方面知識不是很好,只是想解決有關Python爬蟲翻頁的問題 =。=  如有不對,還望指正 瀏覽器:Google 利用區域性更新這種翻頁的方式,同樣需要進行一個url請求,因此我們的目的就是找到這個url 1.分析 如圖所示,頁面翻頁採用了JS的方法 &nb

selenium運用js處理點選事件失效

  有時候,元素明明已經找到了,使用click()就是無法觸發點選事件(當然,這種情況十分少見,至少我只遇到過一次)。下面告訴大家這種場景的解決方案。      使用js程式碼來點選【部落格園】這個按鈕        程式碼:   #!/usr/bin/pytho

如何利用selenium+python獲取click()方法後 請求返回的結果 包含: javascript 陣列操作正則表示式匹配返回陣列,js兩個陣列取差集,再去重 by qiweb 2018

技術交流q and v信:908701702  ,熊貓燒香 qiweb2018 python程式碼思路【開啟網頁--定位元素--點選請求--獲取請求後伺服器返回的資訊】: # coding=utf-8 from selenium import webdriver from

seleniumJS如何處理滾動條

前言 什麼是JS? JS就是JavaScript; JavaScript 是世界上最流行的指令碼語言; JavaScript 是屬於 web 的語言,它適用於 PC、膝上型電腦、平板電腦和行動電話; JavaScript 被設計為向 HTML 頁面增加互動性; 許

js中我最常用的幾種遍歷處理資料的方法梳理

forEach,Object.keys,map,for in ,for of,reduce,every1,forEach 用於遍歷【陣列】data.forEach(( item, index ) => {    console.log('元素:', item ,';下標

Js事件詳解(1)事件型別及幾種新增事件處理程式的方法

js中的事件 早期的事件流的兩種解決方案: 1.IE:事件冒泡流 即事件開始時由最具體的元素(DOM中層次最深的那個節點)接收,然後逐級向上傳播到較為不具體的節點(文件)–自下向上。 所有現代的瀏覽器都支援事件冒泡。 2.Netscape Co

10分鐘學會js處理json常用方法

一、json定義 JSON ( JavaScript Object Notation) ,它是一串字串 只不過元素會使用特定的符號標註。 {} 雙括號表示物件 [] 中括號表示陣列 "" 雙引號內是屬性或值 : 冒號表示後者是前者的值(這個值可以是字串、數字、也可以是另一個數組或物件) J

fullpage.js使用方法

asc 分享 () att 後來 log itl ttr png 了解: 【1】之所以叫做fullpage,是因為它可以全屏滾動,擁有強大的功能。 【2】它依賴於jQuery庫,所以在使用fullpage之前先引入jQuery庫。 使用: 【1】<link rel="

selenium處理table表格

處理 輸入 table 所有 指定 固定 pat 你會 driver 在UI自動化測試中經常會遇到表格的處理,下面是一點心得。 假設網頁頁面有一個表格,如何獲取這個table的指定cell的值?你會說我們可以根據xpath定位到這個cell的行列,然後getText(),不

【轉】安裝Vue.js方法

環境搭建 node.js 初始化 其它 cnpm lan commonjs pos 重量級框架 安裝vue.js的方法 一、簡介 Vue.js 是什麽 Vue.js(讀音 /vju?/, 類似於 view) 是一套構建用戶界面的 漸進式框架。與其他重量級框架不同的是

安裝vue.js方法

targe ejs 國內 sta 顯示 代碼 文件 我們 描述 一、簡介 Vue.js 是什麽 Vue.js(讀音 /vju?/, 類似於 view) 是一套構建用戶界面的 漸進式框架。與其他重量級框架不同的是,Vue 采用自底向上增量開發的設計。Vue 的核心庫只關

Js基本方法

平方根 match 如果 pow ring mon 小寫 string 整數 Math.random() 日期時間函數(需要用變量調用):var b = new Date(); //獲取當前時間b.getTime() //獲取時間戳b.getFullYear() //獲取年

selenium+python定位元素方法

一個 網頁 cat sel href locate targe lan python 定位元素方法 官網地址:http://selenium-python.readthedocs.org/locating-elements.html 這裏有各種

js tool 方法之刪除數組指定項

array數組 它的 rem 進行 efi 對象 判斷 define alt 最近又開始寫博文了,還是在自己的本地項目上做一些小的方法案例. 之前擼代碼的時候總是遇到刪除數組裏某個元素的問題,JS沒提供便捷的方法,只能自己寫個循環處理,所幸自己寫個方法,以後博客項目裏要用到

html 手機端click 事件延遲問題(fastclick.js使用方法)

cat 設計 fun 等待時間 get click tla 調用 span 下載地址: fastclick.js 為什麽存在延遲? 從點擊屏幕上的元素到觸發元素的 click 事件,移動瀏覽器會有大約 300 毫秒的等待時間。為什麽這麽設計呢? 因為它想看看

Selenium,處理alert、confirm、prompt對話框 彈層

smis conf span rom ext con keys text2 pre 1 //點擊第一個按鈕,輸出對話框上面的文字,然後叉掉 2 dr.findElement(By.id("alert")).click(); 3 Al

js,vue.js一些方法的總結

nbsp 進行 for submit 多個 targe tag spl 修飾 push() 可向數組的末尾添加一個或多個元素 pop() 刪除並返回數組的最後一個元素 shift()刪除並返回數組的第一個元素 unshift() 添加並返回數組的第一個元素 sort()對數

Java Selenium - 處理頁面彈出窗

cnblogs clas java iterator 循環 當前 iter string ren 1. 得到當前窗口句柄 2. 得到所有窗口句柄 3. 循環找到目標窗口 String currentWindow = driver.getWindowHandle(); S