我看到其他量角器相关帖子提到如何等待元素变得可见.但是,最近,我遇到了一个相反的用例.我想等一个元素,直到它变得不可见.因为我找不到任何具体的信息.我继续前进,想出了一个解决方案.
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)
希望它有所帮助.任何建议都是受欢迎的.
谢谢,
如何递归地修剪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) 每当我尝试等待从我的量角器测试正在测试的网页上的当前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可以完成这项工作.
如何修改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) 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