小编vic*_*hsu的帖子

量角器:等待元素变得不可见/隐藏

我看到其他量角器相关帖子提到如何等待元素变得可见.但是,最近,我遇到了一个相反的用例.我想等一个元素,直到它变得不可见.因为我找不到任何具体的信息.我继续前进,想出了一个解决方案.

var ptor = protractor.getInstance();
    ptor.wait(function() {

        return element(by.css('#my-css-here')).isDisplayed().then(function(isVisible){
            console.log('is visible :' + isVisible);
            return !isVisible;
        });

    }, 12000).then(function(){
        //do whatever you want 
});
Run Code Online (Sandbox Code Playgroud)

希望它有所帮助.任何建议都是受欢迎的.

谢谢,

hidden invisible element wait protractor

21
推荐指数
2
解决办法
3万
查看次数

递归修剪Object键和值中的空格

如何递归地修剪JavaScript对象中的键和值中的空格?

我遇到了一个问题,我试图"清理"用户提供的JSON字符串并将其发送到我的其他代码中以便进一步处理.

假设我们有一个用户提供的JSON字符串,其属性键和值的类型为"string".但是,在这种情况下存在的问题是键和值不如所希望的那样干净.说一个{"key_with_leading_n_trailing_spaces":"my_value_with_leading_spaces"}.

在这种情况下,它很容易导致您出色的JavaScript程序试图利用这些数据(或者我们应该将其称为脏数据?),因为当您的代码试图从这个JSON对象中获取值时,不仅键不匹配,但值也无法匹配.我已经浏览了谷歌,并找到了一些提示,但没有一种治愈方法可以治愈这一切.

鉴于这个JSON在键和值中有很多空格.

var badJson = {
  "  some-key   ": "    let it go    ",
  "  mypuppy     ": "    donrio   ",
  "   age  ": "   12.3",
  "  children      ": [
    { 
      "   color": " yellow",
      "name    ": "    alice"
    },    { 
      "   color": " silver        ",
      "name    ": "    bruce"
    },    { 
      "   color": " brown       ",
      "     name    ": "    francis"
    },    { 
      "   color": " red",
      "      name    ": "    york"
    },

  ],
  "     house": [ …
Run Code Online (Sandbox Code Playgroud)

javascript recursion trim object

14
推荐指数
3
解决办法
2万
查看次数

如何从DOM中删除元素?

每当我尝试等待从我的量角器测试正在测试的网页上的当前DOM树中删除DOM元素时,我就遇到了这个问题.当我尝试等待DOM元素被另一个线程中的user2912739提供的这种漂亮的技术隐藏时,我已经掌握了它.

var el = element(by.css('.your-css-class'));
return browser.wait(protractor.until.elementIsNotVisible(el));
Run Code Online (Sandbox Code Playgroud)

这很不错.但是,当等待从DOM树中删除的元素时.isDisplayed(),.isPresent()或者上面的行似乎都不起作用.测试将继续运行,但看起来它正在尝试获取该元素但从未成功,因此它最终会根据配置文件的超时设置超时.例如.这是日志.

超时:等待规格完成30000毫秒后超时

每当您处理测试是否从DOM树中删除元素时,这种情况的用例可能非常频繁,例如,当用户单击取消该模态元素的操作时,关闭并从页面中删除的模式,或者您只想"删除"的元素,以便它不再存在于页面上.因此,在测试中,您只想在从DOM树中删除后立即继续测试运行.

我搜索了量角器和web驱动程序api,似乎没有api可以完成这项工作.

dom element wait protractor

9
推荐指数
1
解决办法
1万
查看次数

如何修改PostgreSQL JSONB数据类型中的单个属性值?

如何修改PostgreSQL JSONB数据类型中的单个字段?

假设我有一张叫做动物的桌子:

id       info
------------------------------------------------------------
49493   {"habit1":"fly","habit2":"dive","location":"SONOMA NARITE"}
Run Code Online (Sandbox Code Playgroud)

我想简单地更改location属性的值(例如,大写或小写文本).所以结果,在UPDATE之后

    id       info
------------------------------------------------------------
49493   {"habit1":"fly","habit2":"dive","location":"sonoma narite"}
Run Code Online (Sandbox Code Playgroud)

我在下面尝试了这个,它不起作用

update animal set info=jsonb_set(info, '{location}', LOWER(info->>'location'), true) where id='49493';
----------------------------------
ERROR:  function jsonb_set(jsonb, unknown, text, boolean) does not exist
LINE 7: update animal set info=jsonb_set(info, '{con...
                                           ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********

ERROR: function jsonb_set(jsonb, unknown, text, boolean) does not exist
Run Code Online (Sandbox Code Playgroud)

如果我只是知道更新的值是什么,那么我可以使用这个:

update animal set info=jsonb_set(info, '{location}', …
Run Code Online (Sandbox Code Playgroud)

postgresql json jsonb

6
推荐指数
2
解决办法
5717
查看次数

标签 统计

element ×2

protractor ×2

wait ×2

dom ×1

hidden ×1

invisible ×1

javascript ×1

json ×1

jsonb ×1

object ×1

postgresql ×1

recursion ×1

trim ×1