当我使用var driver = require('selenium-webdriver'),
chai = require('chai'),
expect = chai.expect;
chai.use(require('chai-as-promised'));
describe('Webdriver - Admin Page Tests - ', function() {
beforeEach(function() {
this.timeout(10000);
this.driver = new driver.Builder().withCapabilities(driver.Capabilities.firefox()).build();
return this.driver.get('https://admin.example.us/en-US/sign-in');
});
afterEach(function() {
return this.driver.quit();
});
describe('Login verification -', function() {
it('filling in credentials and accessing the portal', function () {
this.driver.sleep(250);
this.driver.findElement({
css: '#app > div > div > div > div > form > div:nth-child(2) > input'
}).sendKeys('test@example.com');
this.driver.findElement({
css: '#app > div > div > div > div > form > div:nth-child(3) > input'
}).sendKeys('example');
this.driver.findElement({
css: '#app > div > div > div > div > form > div:nth-child(4) > input[type="checkbox"]'
}).click();
var formButton = this.driver.findElement({
css: '#app > div > div > div > div > form > div:nth-child(5) > button'
});
this.driver.actions()
.mouseMove(formButton)
.click()
.perform();
this.driver.sleep(250);
return expect(this.driver.getCurrentUrl()).to.eventually.equal('https://admin.example.us/en-US/dashboard');
});
});
});
时,它会将双引号转换为单引号。
这让我感到不安,有人可以帮忙解释一下吗?
json.loads
我知道这是一种正常的行为,我可以轻松调整我的代码。但是想一想是否可以实现同样的目标呢?
答案 0 :(得分:6)
首先:引号不是值的一部分。它们是语法的一部分,向解析器发出信号,表明字符串已定义。
JSON仅支持双引号,但在 Python 中,可以使用单引号或双引号定义字符串。当回显字符串值时,Python通过向您显示重新定义相同值的Python语法来反映该值。对于此表示,单引号是首选。仅当值实际包含至少一个单引号且没有双引号时才使用双引号:
>>> "Normal strings are reflected with single quotes by Python"
'Normal strings are reflected with single quotes by Python'
>>> 'Single quote: \''
"Single quote: '"
>>> 'Single quote: \', and a double quote: \"'
'Single quote: \', and a double quote: "'
您看到的是完全正常的行为。你无法改变这一点;你看到的输出是一个调试工具。如果这是您想要更改的内容,请生成您自己的格式化程序。
当您再次从Python结构生成JSON时,只会使用双引号来生成有效的JSON输出:
>>> import json
>>> json_string = '{"created_at": "2012/02/05 04:03:50 -0800"}'
>>> json.loads(json_string)
{u'created_at': u'2012/02/05 04:03:50 -0800'}
>>> json.dumps(json.loads(json_string))
'{"created_at": "2012/02/05 04:03:50 -0800"}'