我编写了一些代码来解析我的Android程序收到的Google Distance Matrix JSON响应.我唯一感兴趣的数据是"距离""值"节点.
我的代码有效,但似乎必须有一个更简单的方法来做到这一点.距离值节点嵌套在JSON内部,但是真的有必要遍历JSON的每一层才能到达你想要的字段吗?
这是我的JSON响应:
{
"destination_addresses" : [
"5660 Baltimore National Pike, Ingleside Shopping Center, Catonsville, MD 21228, USA"
],
"origin_addresses" : [ "Hilltop Cir, Baltimore, MD 21250, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "3.1 mi",
"value" : 4922 <--THE FIELD I WANT TO EXTRACT
},
"duration" : {
"text" : "11 mins",
"value" : 666
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
Run Code Online (Sandbox Code Playgroud)
这是我用来拉出距离值的代码: …
我正在使用 Ruby 和 Watir-Webdriver 以及 Headless gem 运行 Watir 测试。
这是设置 Headless 环境的代码:
headless = Headless.new(dimensions: "1600x900x24")
Run Code Online (Sandbox Code Playgroud)
如果测试崩溃,我们的测试环境会自动捕获屏幕截图。我希望看到 1600x900 的屏幕截图,但图像大约为 1050 x 818(+/- 几个像素),并且网页本身被缩放以适应这个区域。
我将无头尺寸更改为 3200x1800x24,屏幕截图为 1585 x 1718。我将无头尺寸更改为 50x90x24,屏幕截图为 187 x 8,在这种情况下,整个网页都不可见。
这种行为有什么解释吗?如何将无头屏幕设置为 1600 x 900?我想知道这是否是 Xvfb 的问题,或者 Headless 与 Xvfb 的工作方式,但我不太了解它是如何工作的,而且我今天在 Xvfb 上所做的阅读并没有对我有所启发。
我关心的不是屏幕截图,而是页面缩放以适应 1050 x 818 的缩小尺寸。在这个尺寸下,我正在编写的测试的某些页面元素被包裹在屏幕上并且不可点击,这是导致测试首先崩溃。