1. 程式人生 > >Selenium2(WebDriver)中執行JavaScript程式碼

Selenium2(WebDriver)中執行JavaScript程式碼

在用selenium編寫web頁面的自動化測試程式碼時,可能需要執行一些JavaScript程式碼,selenium本身就支援執行js,我們在程式碼中可以使用executeScript、executeAsyncScript這兩個方法來執行JS。
executeScript是同步方法,用它執行js程式碼會阻塞主執行緒執行,直到JS程式碼執行完畢;
executeAsyncScript方法是非同步方法,它不會阻塞主執行緒執行。

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(String script, object
... args); executeScript方法如果有返回值,有以下幾種情況: 1、如果返回一個頁面元素(document element), 這個方法就會返回一個WebElement 2、如果返回浮點數字,這個方法就返回一個double型別的數字 3、返回非浮點數字,方法返回Long型別數字 4、返回boolean型別,方法返回Boolean型別 5、如果返回一個數組,方法會返回一個List<Object> 6、其他情況,返回一個字串 7、如果沒有返回值,此方法就會返回null

示例:

JavascriptExecutor js = (JavascriptExecutor) driver;
// 用js彈出alert
js.executeScript("alert('Test Case Execution Is started Now..');"); driver.switchTo().alert().accept(); // 用js判斷頁面載入完畢,返回complete System.out.println("readyState: " + js.executeScript("return document.readyState").toString()); // 用js得到頁面的title String title = (String) js.executeScript("return document.title"
); System.out.println("current page title get by js: " + title); // 用js得到頁面的domain name System.out.println("current page domain name get by js: " + js.executeScript("return document.domain")); // 用js操作頁面元素,如高亮顯示某個元素 WebElement element = driver.findElement(By.id("kw")); js.executeScript("arguments[0].setAttribute('style', arguments[1]);", element, "color: orange; border: 4px solid orange;"); /** * 每隔一秒check一下頁面載入是否完成,check次數是25 */ public void checkPageIsReady() { JavascriptExecutor js = (JavascriptExecutor) driver; for (int i = 0; i < 25; i++) { if ("complete".equals(js .executeScript("return document.readyState").toString())) { break; } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }

相關推薦

Selenium2(WebDriver)執行JavaScript程式碼

在用selenium編寫web頁面的自動化測試程式碼時,可能需要執行一些JavaScript程式碼,selenium本身就支援執行js,我們在程式碼中可以使用executeScript、executeAsyncScript這兩個方法來執行JS。 exec

在Python執行JavaScript程式碼並進行資料交換

閒言碎語不多講,今天介紹一下Python擴充套件庫pyexecjs。首先進入命令提示符環境,使用

LaTeX lstlisting環境執行LaTeX程式碼

問題提出 有一段Visual Basic 程式碼,需要在LaTeX文件中生成: Private Sub Form_Click() Print For i = 1 To 5 Print Tab(i); String(6 - i, "▼"); Spc(6); Stri

在VC++執行VBS程式碼

此程式碼來自https://blog.csdn.net/zhu2695/article/details/13770671 作者: zhu2695   時間:2013年10月31日 13:08:41 #include<fstream>using namespace

在Sublime Text3執行PHP程式碼

二、安裝步驟 1、下載PHP的整合安裝環境WampServer,下載完成後執行exe點下一步、下一步進行安裝。 2、按win+R輸入sysdm.cpl開啟系統屬性(或通過計算機右擊->屬性->高階系統配置)選擇高階->環境變數,然後將PHP

實現在Java執行python程式碼或py指令碼(可傳引數)

最近用Java寫服務端程式時,遇到這樣一個需求:需要把用python寫的機器學習演算法部署到伺服器上,然後Java執行py指令碼,並且取得演算法執行的結果。在網上找了很久,有些跑不通,有些是基於windows的,我的伺服器是linux的,遇到了不少坑= =好不容易解決了,記錄

在Sublime text3執行php程式碼(筆記)

前面已經下載了PHP的整合安裝環境WampServer 計算機右擊->屬性->高階系統配置->選擇高階->環境變數,然後將PHP可執行程式路徑(wampServer安裝目錄下)設定到環境變數 path 即可 接著開啟CMD,輸入php -h ,檢視是否

在chrome瀏覽器執行javascript

chrome瀏覽器中包含了開發者工具,chrome瀏覽器可謂是非常的強大啊,在chrome瀏覽器上F12就可以開啟開發者模式。如下圖所示: 下面給大家簡單演示一下使用jquery登陸csdn,首先開啟csdn的登陸頁面,然後開啟開發者工具,在控制檯執行如下命令即可。 ja

2018年最後一天 VsCode執行nodeJs程式碼的簡單方法 Pgsql和Mysql的對比 Tomcat的最大併發數 Spring AOP不起作用原因

發現2017的隨筆總結依舊適用,想堅持每天寫點東西分享,但感覺每天能原創分享的內容真的不多,尤其是要把自己想分享的內容寫清楚也需要額外花費很多的時間,這讓本來平時就工作比較忙的自己疲於應付,於是乎就轉載自己看到的一些好的文章分享,甚至有些文章自己都沒完全看完就發,湊合著完成了任務,但自己的成就感很低。因此我不

c# winform程式在WebBrowser控制元件執行javascript指令碼

來自:http://outofmemory.cn/code-snippet/1706/c-winform-program-WebBrowser-control-execution-javascript-script winform的WebBrowser控制元件,可以方便的載

怎麼在chrome的位址列執行js程式碼

crtl+shift+j chorme自帶的開發人員工具  console+log可以直接輸出指令碼程式碼 javascript:alert("js")或者confirm("js");可以直接打印出

C#解析javascript程式碼

先上程式碼:   該類需要你新增對程式集 Microsoft.JScript 的引用;如果把“current version with JScriptCodeProvider” 部分程式碼替換為“deprecated version with Vsa”部分程式碼,你還需要新增對程式集 Microsoft.

在Eclipse執行JAVA程式碼遠端操作HBase的示例

下面是一個在Windows的Eclipse中通過JAVA操作一個Linux上執行的hbase的示例。 Hbase的配置需要注意下面一些要點: 1,伺服器端用主機名配置hadoop和hbase,不要用IP 比如如下: <property>    <name&

在Python執行javascript

在使用python抓取網頁的過程中,有的時候需要執行某些簡單的javascript,以獲得自己需要的內容,例如執行js裡面的document.write或者document.getelementbyid等。自己解析js程式碼顯然有點吃力不討好,因此最好能找到一些可以解析執行

在Notepad++執行python程式碼以及 執行後只是一閃而過

1.在notepad++中直接執行python程式碼 1.第一種:開啟Notepad++;點選外掛,點選​plugin manager,點選show plugin manager,找到“pynpp”,install。執行時直接開啟文件,點選外掛->pynpp-&g

禁止在 .NET Framework 執行使用者程式碼。啟用 "clr enabled" 配置選項 解決辦法

在查詢分析其中執行如下程式碼: exec sp_configure 'show advanced options', '1'; go reconfigure; go exec sp_configure 'clr enabled', '1' go reconfigure; e

java SWT Browser實現瀏覽器功能並執行JavaScript程式碼

搜了好多中文教程,要麼時間太久,要麼太過於簡略,沒有乾貨。迫於無奈,硬著頭皮去看官方源文件。還是有一點的收穫。分享一下。 我主要想用裡面的瀏覽器Browser控制元件實現一些功能,所以重點了解了一下,發現它的功能很是強大。 一、建立簡單的瀏覽器 import org

怎麼用c#編寫瀏覽器或者執行javascript程式碼

由於專案需要,需要在c#程式中執行HTML5程式碼和javascript程式碼。我一想總不能為了這個寫個解釋程式吧?得寫到猴年馬月啊?再說當初編譯原理這門課剛及格,基本功也不好。所以上網查了查,javascript解釋程式有好多,不過大致都可以分為IE核心,chrome核心

說說如何在 Java 執行 JavaScript 指令碼

Java 是強型別的靜態語言,即所有的程式碼在執行之前都必須先進行嚴格的型別檢查並編譯為 JVM 位元組碼。這樣做雖然保證了安全與效能,但卻犧牲了靈活性。而那些動態語言(JavaScript 、Python 等)卻可以在程式執行時改變程式的結構以及變數型別,因此

織夢dedecms模板執行php程式碼和mysql語句總結

前言 我們在開發織夢模板時,有時需要對當前呼叫的一些資料做一些修改或者調整。就需要用利用php語言來對所得資料進行一些處理。同時也會用到用sql語句直接在資料庫中呼叫相關資料。島主總結了一下在模板中執行php程式碼和mysql語句的方法。 具體方法 1、在織夢模板中執行ph