本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
下面是html代码..在上述场景中,我想切换到IFRAME(iframeid="I0_1366100881331")以对该IFRAME中存在的SPAN执行一些操作。我已经尝试过大多数情况,但没有结果:(...任何人都请帮忙。我想要只使用capybararuby的cucumber解决方案..注意:我尝试了以下代码但没有结果。page.driver.browser.switch_to.frame"I0_1366100881331" 最佳答案 within_frame(find(''))doend
我需要获取所有current_user.friends状态,然后按created_at对它们进行排序。classUser在Controller中:defindex@statuses=[]current_user.friends.map{|friend|friend.statuses.each{|status|@statusesa.created_at}endcurrent_user.friends返回对象数组Userfriend.statuses返回对象数组Status错误:comparisonofStatuswithStatusfailedapp/controllers/welcom
这是我在命令提示符之前看到的最后一件事:Searchingforbinaryrubies,thismighttakesometime.Foundremotefilehttps://rvm.io/binaries/osx/10.9/x86_64/ruby-2.1.1.tar.bz2Checkingrequirementsforosx.AbouttoinstallHomebrew,press`Enter`fordefaultinstallationin`/usr/local`,typenewpathifyouwishcustomHomebrewinstallation(thepathnee
我正在使用Capistrano运行远程任务。我的任务是这样的:task:my_taskdorun"my_command"end我的问题是,如果my_command的退出状态为!=0,那么Capistrano认为它失败并退出。当退出状态不为0时,如何让capistrano在退出时继续运行?我已将my_command更改为my_command;echo并且它可以工作,但感觉像是hack。 最佳答案 最简单的方法是将true附加到命令的末尾。task:my_taskdorun"my_command"end成为task:my_taskdor
我有一个使用onfocus事件的html应用程序。切换浏览器选项卡时,它工作得很好。现在,当我将该应用程序作为另一个html页面中的iframe加载时,它无法正常工作,因为在切换选项卡时iframe没有聚焦。如何从iframe访问onfocus事件无需修改顶层代码。iframe和加载iframe的页面不是同源的。if(!window.parent.frames.length){window.onfocus=function(){//dosmth};}else{//???} 最佳答案 您可以使用HTML5可见性API。它允许您检测用户
我尝试了一些不同的方法,但没有任何效果,基本上我需要从iframe获取当前位置/url,获取我想要的部分并将其返回到url中的哈希。我如何在javascript中执行此操作? 最佳答案 选择正确的iframe元素,拉出src属性,做你的事情,将src分配给window.location.hashvariframe=$('iframe');varsrc=iframe.attr('src');window.location.hash=src;编辑如果您想从iframe获取动态位置,您必须访问contentWindow属性:varifra
我想以编程方式检测我的网站是否在FacebookiFrame应用程序中,以便我可以显示特定的Facebook功能。否则,如果有人在没有Facebook的情况下访问网站。最好是FBML、C#或JS解决方案:)谢谢! 最佳答案 好吧,您始终可以使用基本的javascript检查页面是否被加框if(top===window){//pageisnotframed}此外,当用户首次点击您的Canvas页面时,Facebook平台会向您的回调URL发送一堆数据,无论是在正常的GET参数中还是在单个编码参数(取决于您的设置)中,您也可以检查这些数
我在ajax更新面板中使用了一个asp.net文本框。如果我在文本框中输入并按保存按钮,它会出现javascript错误Sys.WebForms.PageRequestManagerServerErrorException:Anunknownerroroccurredwhileprocessingtherequestontheserver.Thestatuscodereturnedfromtheserverwas:500请帮我看看为什么会出现这个错误? 最佳答案 可能ASP.NETRequestValidation启动并检测到潜
我在iframe中有这段代码。$(document).ready(function(){$("body").append($("#ctap").html());});我想将#ctap的html附加到父正文。我该怎么做? 最佳答案 尝试在document.ready中执行以下代码parent.$("body").append($("#ctap").html()); 关于javascript-如何从iframe将元素附加到父主体?,我们在StackOverflow上找到一个类似的问题: