在 selenium python 中从驱动程序控制台获取 JSON 数据

Get JSON data from driver console in selenium python

我需要从控制台获取JSON数据,可以在 this 图片。

到目前为止,我使用了以下代码:

j = driver.execute_script(" return document.getElementsByClassName('form-group text required assessment_questions_choices_text')")

我尝试将数据保存到列表中,但效果不佳。

list = []
list = driver.execute_script(" return document.getElementsByClassName('form-group text required assessment_questions_choices_text')")

另外,我在网上看到一个方法可以找到 here,使用它我只能获取外部文件的数据索引。

{ "0": {}, "1": {}, "2": {}, "3": {}, "4": {} }

正在寻找一种方法来导入所有数据,每个属性都直接导入我的 python 代码。

提前致谢。

这是可以正常使用的代码段。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
url = ""
driver.get(url)
elems = driver.execute_script("return document.getElementsByClassName('post-tag js-gps-track')")
for elem in elems:
    print(elem.text)
driver.quit()

输出:

javascript
python
json
selenium
console.log

Process finished with exit code 0

编辑 1:

如果你想获取特定的匹配元素,请使用下面的。

value = driver.execute_script("return document.getElementsByClassName('name_of_class')[0].innerHTML")
# or you can also use the below if you are interested in first item only
value = driver.execute_script("return document.querySelector('.single_class')[0].innerHTML")
# query selector with multiple classes (class name with whitespaces)
value = driver.execute_script("return document.querySelector('.class1.class2')[0].innerHTML")