2011-02-27 86 views
0

嘿夥計們, Javascript新手在這裏。我試圖修改一些現有的代碼來代替返回計數元素,實際上每一個指定的元素添加到一個數組/列表Javascript:修改代碼以添加元素到數組/列表

這裏是Selenium CSS counter

private int getCSSCount(String aCSSLocator){ 
String jsScript = "var cssMatches = eval_css(\"%s\", window.document);cssMatches.length;"; 
return Integer.parseInt(selenium.getEval(String.format(jsScript, aCSSLocator))); 
原代碼

}

然後我必須將代碼移植到Python,對此我更熟悉

 def count_css_matches(self, css_locator): 
     java_script_code = ''' 
      var cssMatches = eval_css("%s", window.document); 
      cssMatches.length;''' % css_locator 
     return int(self.selenium.get_eval(java_script_code)) 
轉換0

但更改原始代碼返回數組而不是整數是我卡住的地方。

感謝您的幫助,下面是我嘗試在Python中運行時遇到的錯誤。

回溯(最近通話最後一個): 「d:\ TEMP \ 1TestingApps \硒\ SeleniumRC \硒的Python客戶端驅動器-1.0.1 \ selenium.py」,線1218,在get_eval 迴歸自我.get_string(「getEval」,[script,]) get_string 結果文件「D:\ Temp \ 1TestingApps \ Selenium \ SeleniumRC \ selenium-python-client-driver-1.0.1 \ selenium.py」,第219行= self.do_command(verb,args) 文件「D:\ Temp \ 1TestingApps \ Selenium \ SeleniumRC \ selenium-python-client-driver-1.0.1 \ selenium.py」,第215行,在do_command中 raise Exception,data 異常:錯誤:拋出異常:缺失)參數列表後

回答

0

如果你更新你的Python綁定,你會擁有它。 pip install -U selenium

+0

好吧,我做到了......我應該看到什麼改變?附:感謝您關於Selenium的精彩圖書! – gorbysbm 2011-02-28 17:38:44

+0

get_css_count現在在硒 – gorbysbm 2012-02-01 02:09:13

1

我不知道如何eval_css工作,但如果返回一個字符串數組到cssMatches,因爲你可以得到一個字符串,而不是一個列表,使用get_eval,那麼你應該JSON化在JS範圍的列表,讓它作爲將一個字符串轉換爲python,並使用simplejson,將其轉換爲python的本機列表。

這樣的事情,我想:

import json 

def count_css_matches(self, css_locator): 
    java_script_code = ''' 
     var cssMatches = eval_css("%s", window.document); 
     JSON.stringify(cssMatches.length);''' % css_locator 

    return json.loads(self.selenium.get_eval(java_script_code))) 

我不知道,如果你需要在js代碼返回,文件撰寫,或類似的東西得到的字符串。如果需要,請添加註釋,然後我將它添加到代碼中:-)

祝您好運!

+0

感謝Gonzalo,但是當我在Python中試過你的代碼時,它實際上只是返回一個整數,而不是一個字符串:。也許它會幫助,如果你只是把我發佈的原始JavaScript代碼,並得到它返回一個元素的數組。然後下一步就是「Pythonize」代碼。 – gorbysbm 2011-02-27 21:03:03

+0

在Selenium官方的參考文獻中,他們使用'.toString()'將數組轉換爲逗號分隔的字符串,然後分割值:http://seleniumhq.org/docs/05_selenium_rc.html。檢查是否有其他問題,因爲它似乎是解決這類問題的方法。 – 2011-02-27 21:28:11

+0

對不起,這是鏈接:http://seleniumhq.org/docs/05_selenium_rc.html#executing-javascript-from-your-test – 2011-02-27 21:31:19