selenium 執行js代碼


獲取一個input輸入框的值:

1 JavascriptExecutor js =(JavascriptExecutor) driver;
2 merchatName=js.executeScript("return arguments[0].value", m1.byId("subMerName")).toString();

 

在selenium里面也提供了執行js代碼的方法:

Object executeScript(String script, Object... args);        

Object executeAsyncScript(String script, Object... args)

1、executeScript方法接收兩個參數和一個返回值:

script,javascript代碼片段,這段js代碼片段是作為js函數的完整方法體,可以使用return語句作為函數的返回值。
args, 參數數組,參數數組用於將外部數據傳遞給script(js代碼片段),script中可以通過arguments[index]方式索引args數組中的參數;參數數據類型必須是以下幾種(number, boolean, String, WebElement, 或者以上數據類型的List集合),當然無參數可以保留為空。
 返回值,返回值是由js代碼片段計算后通過return語句返回,返回值數據類型可以為(WebElement,Double,Long,Boolean,String,List或Map),沒有return語句,這里返回數據為null。

2、executeAsyncScript方法接收兩個參數和一個返回值:

script,javascript代碼片段,這段js代碼片段是作為js函數的完整方法體,與executeScript主要有兩點不同:
 a、此處的script必須在代碼結束時明確調用callback方法以通知webdriver該script執行結束;該callback方法是由webdriver注入到arguments數組中最后一個元素;可以通過arguments[arguments.length-1]獲取到,且可以使用該回調函數返回計算結果(只需要將放回結果作為回調函數的參數即可);

b、該script執行會有超時時間,默認為60s,超時時間內未調用callback方法,JavascriptExecutor會拋出Timeout異常。
 args, 規則同executeScript。 返回值,規則同executeScript


轉載自: https://blog.csdn.net/a578133380/article/details/80262681


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM