0

为什么硒返回utag["data"]有效但utag失败?

如何返回/检索/导出整个 utag 对象(通过 python 中的 selenium)?


typeof(dataLayer)
"object"
typeof(utag)
"object"
typeof(utag.db_log)
"object"

// on page https://tealium.com/

var testFunc = function(){    
    return dataLayer;
};
testFunc ()
// works

var testFunc = function(){    
    return utag.data;
};
testFunc ()
// works

var testFunc = function(){    
    return utag;
};
testFunc ()
// works

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://tealium.com") 

#jsObj = '''utag_err'''            # fails
#jsObj = '''console.log( utag )''' # fails 
jsObj = '''utag.data'''            # works 
jsObj = '''utag["data"]'''         # works 
#jsObj = '''utag'''                # fails

searchTxt= f'''return {jsObj}'''
driver.execute_script(  searchTxt ) 
4

1 回答 1

0

Utag 包含圆形结构。其他语言的结构并不总是支持它们,当然 JSON 也不支持它们。

有多种方法可以对圆形对象进行字符串化。请参阅这篇文章:如何以类似 JSON 的格式打印圆形结构?

但我只是从头开始重建对象。无论如何,您不太可能需要 Selenium 中 90% 的 utag 对象。只需在代码中使用一个函数来在 Selenium 中为您构建一个全局 utag 对象,当您需要更多时,您可以在其中添加字段。您也可以在其中添加一些简单的处理,因此它将充当您的 utag 包装器。

于 2021-10-06T07:38:41.133 回答