Javascript:修改代码以向数组/lis添加元素

2024-09-30 01:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿伙计们, 这里是Javascript新手。我正在尝试修改一些现有的to代码,而不是返回元素的计数,以便实际地将每个指定的元素添加到数组/列表中

这是来自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,这是我更熟悉的

^{pr2}$

但是更改原始代码以返回数组而不是整数是我遇到的问题。在

感谢您的帮助,下面是我在Python中运行它时遇到的错误。在

回溯(最近一次呼叫): “D:\Temp\1TestingApps\SeleniumRC\SeleniumRC\Selenium-python-client-driver-1.0.1\硒.py“,第1218行,获取评估 返回self.get_字符串(“getEval”,[脚本,]) 文件“D:\Temp\1TestingApps\SeleniumRC\SeleniumRC\Selenium-python-client-driver-1.0.1\硒.py“,第219行,在get_string中 结果=self.do\u命令(动词,args) 文件“D:\Temp\1TestingApps\SeleniumRC\SeleniumRC\Selenium-python-client-driver-1.0.1\硒.py“,第215行,在do\u命令中 引发异常,数据 异常:错误:在参数列表后引发了异常:缺少)


Tags: 代码pyclient元素列表stringdriverselenium
2条回答

如果您更新python绑定,您将拥有它。pip install -U selenium

我不确定eval_css是如何工作的,但是如果使用get_eval将一个字符串数组返回到cssMatches,因为您可以得到一个字符串,而不是一个列表,那么您应该在JS作用域中jsonified该列表,将其作为一个字符串输入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代码中的内容来获取字符串。如果需要请添加注释,我将添加到代码中:-)

祝你好运!在

相关问题 更多 >

    热门问题