繁体   English   中英

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

[英]Get JSON data from driver console in selenium python

我需要从控制台获取 JSON 数据,可以在这张图片中看到。

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

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')")

另外,我在网上遇到了一种方法,可以在这里找到,使用它我只能将数据的索引获取到外部文件。

{ “0”:{},“1”:{},“2”:{},“3”:{},“4”:{} }

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

提前致谢。

这是没有任何问题的代码段。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
url = "https://stackoverflow.com/questions/61240545/get-json-data-from-driver-console-in-selenium-python"
driver.get(url)
elems = driver.execute_script("return document.getElementsByClassName('post-tag js-gps-track')")
for elem in elems:
    print(elem.text)
driver.quit()

output:

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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM