我正在使用selenium检查json请求中的值,我收到错误。我正在做的是首先登录,因为我无法得到响应,除非我已登录。然后我试图从json为用户获取余额并打印它,以便我可以看到它确实有效。它看起来像一个大黑客。
json看起来像这样:
{
"account": {
"balance": "28590",
"status": "0"
}
}
这是我的代码:
from selenium import webdriver
import openpyxl
import json
import requests
driver = webdriver.Firefox(executable_path= r"geckodriver path")
baseURL = 'url'
#Get username/password from excel sheet
workbook = openpyxl.load_workbook(r"xlsx")
sheet = workbook.get_sheet_by_name('Sheet1')
username = str(sheet['A1'].value)
password = str(sheet['B1'].value)
#Open browser
driver.get(baseURL)
driver.maximize_window()
#Login
driver.find_element_by_xpath('xpath').click()
driver.implicitly_wait(500)
driver.find_element_by_id('email').send_keys(username)
driver.find_element_by_id('password').send_keys(password)
driver.find_element_by_id('login').click()
#Check balance
balance_api = 'balance/json'
json_data = requests.get(balance_api).json()
balance = json_data['account'][0]['balance']
print(balance)
这给了我这个错误信息:
Traceback (most recent call last):
File "pointsCheck.py", line 31, in <module>
balance = json_data['account'][0]['balance']
KeyError: 0
我对登录没有任何问题。当我试图抓住平衡时,就是这样。我不确定这是否是正确的方法。我感谢任何帮助。
答案 0 :(得分:1)
您应该使用firebase.auth().getRedirectResult()
.then((result) => {
return result.user;
}).then((user) => {
if (this.authRedirected)
return; // Skip
// Do stuff.
this.authRedirected = true; // Mark redirected
});
您不需要拥有0索引的数组。