草庐IT

selenium中键盘操作:Keys类

全部标签

javascript - 如何用 selenium 重新加载 html DOM,以便新命令定位新节点?

所以我正在做一些测试,其中一个页面会在单击某些按钮和链接后更改它的html树。但是webdriver一直只在旧的htmlDOM中搜索。那么如何定位新添加的网络元素呢?或者如何让webdriver加载新的HtmlDOM以便它以新元素为目标?谢谢 最佳答案 WebDriver会自动轮询DOM。只需在与最近添加的网络元素交互之前使用隐式或显式等待:http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits

javascript - 使用 RxJS switchMap 仅取消订阅具有相同请求 URL/操作负载的流(redux-observable 史诗)

我有一个界面,用户可以在其中触发对同一端点但具有不同参数(在本例中为UUID)的调用。到目前为止,我一直很享受switchMap的行为,每当我发送一个具有相同类型的新redux操作时取消我的飞行中的http请求,在这种情况下我仍然想要这种行为,但是仅如果新操作请求的UUID(操作对象的一部分)与已经在进行中的UUID相同。我不太确定正确的方法。例如,在一次分派(dispatch)多个Action后,我希望所有具有唯一ID的Action都完成,但那些重复现有但尚未完成的ID会取消之前的请求并取而代之。例如:store.dispatch({type:"GET_SOME_DATA",uuid

javascript,等待某事为真,然后运行操作

好吧,标题kindof说明了我的需要。因为在Javascript超时异步中我需要知道什么时候变成真的。我不想要忙循环。想出了:functiondo_when(predicate,action,timeout_step){if(predicate()){action();}else{setTimeout(do_when,timeout_step,predicate,action,timeout_step);}}它是好的Javascript还是我可以做得更好? 最佳答案 根据谓词是什么,您可能能够将您的问题放入observerpatte

c# - ASP.NET MVC 将 JSON 数据发送到 Controller 操作

我正在尝试将一些JSON数据发送到我的ASP.NETMVC3Controller操作方法,但无论我做什么它都不起作用。这是我的ajax调用(它使用来自json2.js的JSON.stringify方法):$.ajax({url:'/Home/GetData',type:"POST",dataType:"json",contentType:"application/json;charset=utf-8;",data:JSON.stringify(filters_data),success:function(data){alert(data);}});Fiddler显示请求如下:POSTh

javascript - 隐藏 iPhone 键盘上方的工具栏,PhoneGap

我正在使用PhoneGap开发iPhone应用程序。在应用程序中,有一个页面仅包含一个供用户输入的文本区域。由于此页面上没有其他输入字段,我想隐藏键盘上方的工具栏以给用户更多的自由空间。有什么办法吗?使用javascript 最佳答案 您可以通过将此添加到config.xml来隐藏它:http://docs.phonegap.com/en/3.4.0/config_ref_index.md.html#The%20config.xml%20File 关于javascript-隐藏iPhon

javascript - 如何验证是否使用 Selenium 在 javascript 对象上调用了某些方法?

我想用selenium验证是否调用了某些方法(带参数)JavaScript对象-一种使用JMockit的期望模拟,但在Javascript和selenium中。不幸的是,对象是被严重混淆的不透明网站性能跟踪器,我无法访问它的内部结构,所以在我看来,模拟是唯一的选择。还是我漏掉了一些明显的东西?更新:经过思考,在我看来解决方案可能是:-等待HTML完全加载-删除某些包含性能跟踪器的脚本标签-创建javascript模拟对象,其行为类似于跟踪器,但记录调用供以后使用 最佳答案 好的,终于明白了。选择的模拟框架是:jsmockito和js

javascript - 文档在 dom 操作后准备就绪

我正在用Phonegap做一个应用程序,我正在使用一个自建的幻灯片切换来更改页面。它是这样工作的:每个页面都是一个高度和宽度为100%的div,因此如果我更改页面,我会将下一个div设置为当前事件的右侧并将两者都滑动到左侧。现在问题来了:滑动工作正常,但它是在右侧div的内容完全加载之前执行的。所以右边的div滑入空白,只有几百毫秒后内容才会出现。我用document.ready试过了,但据我所知,这个事件只在第一次加载DOM时执行。在我用Javascript操作了DOM之后,有人知道如何等待DOM再次完全呈现吗? 最佳答案 在您的

javascript - Selenium Webdriver 是可检测的

我到处都读到网站不可能检测到用户正在使用seleniumwebdriver......但为什么呢?例如firefox中的webdriver插件添加了一个“webdriver属性”到元素。所以...转到...我很困惑...为什么无法检测到网络驱动程序?我写了一点Javascript来获取document.outerHTML...并且有webdriver属性!=检测到!?这是我在浏览器中使用和不使用Webdriver测试的代码:有人能解释一下为什么无法检测到Webdriver吗? 最佳答案 W3CdraftspecAppendixE中的

javascript - Capybara/Selenium 在 location.reload() 上随机获取一个 Net::ReadTimeout

我正在使用Capybara、selenium-webdrivergem和chromedriver来驱动我的启用javascript的测试。问题是大约50%的构建由于Net::ReadTimeout错误而失败。起初这表现为“找不到元素”错误,但在我将Capybara的默认最长等待时间提高到30秒后,我开始看到超时。我检查了超时发生时的屏幕截图,它停留在我们在使用Javascript函数location.reload()重新加载页面之前简要显示的“成功登录”模式.我在本地运行了测试,有时可以重现,也是随机的。有时它会通过这个模态压缩并重新加载,速度快到你几乎看不到它,而其他时候它会永远挂起

javascript - 为什么 Selenium 找不到动态添加的 DOM 元素?

我用jQuery添加了一个DOM元素(一个链接)。我可以在Firebug中看到该元素,但由于某种原因Selenium找不到它。这是怎么回事?注意:不涉及AJAX,因此几乎立即添加了DOM元素。==编辑==这里有一些代码(使用jQuery)将链接附加到文档的末尾:$element=$("");$element.appendTo($("body"));我正在使用Capybara(带有Selenium)来查找链接并单击它,如下所示:find("#foo").click在我开始使用jQuery向DOM添加元素之前,我对Capybara或Selenium没有任何问题。