簡體   English   中英

從Selenium Webdriver中的JQuery腳本返回值

[英]Return value from a JQuery script in Selenium Webdriver

我在通過Selenium Webdriver獲取一些href時遇到了問題。 因此,我使用了JQuery腳本來實現它。

script = 
"(function() {
    var a = [];
    $("a.class0.class1.link").each(function() {
        a.push($(this).attr('href'));
    });
    return a;
})()";

通過這樣的代碼執行:

result = javascriptExecutor.executeScript(script)

但是結果為空值。 當我在Chrome控制台中運行該腳本時,我得到了正確的結果-href數組。 我做錯了什么?

好的,我已經解決了問題。 有兩種實現結果的方法-從鏈接獲取href。

script = "return $('a.class0.class1.link');"

執行這樣的腳本並獲取一個WebElement數組,可以從中獲取屬性:

val js = browser.asInstanceOf[JavascriptExecutor]
val scriptResult = js.executeScript(script)
val result = ListBuffer.empty[String]

scriptResult.asInstanceOf[util.ArrayList[WebElement]].forEach(x => result +=
  x.getAttribute("href"))

result.toList

或第二種方式-執行以下JQuery代碼:

val script = "return (function() {var table = [];$('a.class0.class1.link').each(function() { table.push($(this).attr('href'));});return table;})();"

並收集結果:

val js = browser.asInstanceOf[JavascriptExecutor]
val scriptResult = js.executeScript(javascript)
scriptResult.asInstanceOf[util.ArrayList[String]].asScala.toList

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM