attrs调用attr()来获取属性,以返回处理过的属性,如绝对url

This commit is contained in:
g1879 2020-06-03 10:36:37 +08:00
parent 800a4239ef
commit 6694121a75

View File

@ -36,18 +36,23 @@ class DriverElement(DrissionElement):
"""返回元素所有属性及值""" """返回元素所有属性及值"""
js = ''' js = '''
var dom=arguments[0]; var dom=arguments[0];
var names="{"; var names="(";
var len = dom.attributes.length; var len = dom.attributes.length;
for(var i=0;i<len;i++){ for(var i=0;i<len;i++){
let it = dom.attributes[i]; let it = dom.attributes[i];
let localName = it.localName; let localName = it.localName;
let value = it.value; //let value = it.value;
names += "'" + localName + "':'" + value.replace(/'/g,"\\\\'") + "', "; //names += "'" + localName + "':'" + value.replace(/'/g,"\\\\'") + "', ";
names += "'" + localName + "',";
} }
names+="}" names+=")"
return names; return names;
''' '''
return eval(self.run_script(js)) attrs = dict()
print(eval(self.run_script(js)))
for attr in eval(self.run_script(js)):
attrs[attr] = self.attr(attr)
return attrs
@property @property
def text(self) -> str: def text(self) -> str: