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