草庐IT

「Python|Selenium|场景案例」如何定位iframe中的元素?

本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

ruby - 我需要从 facebook 游戏中抓取数据——使用 ruby

修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它​​是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为

ruby - Sinatra,上传表单中的进度条

我正在开发一个Sinatra应用程序,它包含一个上传表单,并带有一个进度条,指示上传完成了多少。该过程,如ryandahl所述,如下:HTTPuploadprogressbarsareratherobfuscated-theytypicallyinvolveaprocessrunningontheserverkeepingtrackofthesizeofthetempfilethattheHTTPserveriswritingto,thenontheclientsideanAJAXcallismadeeverycouplesecondstotheserverduringtheuploa

ruby - 用 capybara ruby 处理 iframe

下面是html代码..在上述场景中,我想切换到IFRAME(iframeid="I0_1366100881331")以对该IFRAME中存在的SPAN执行一些操作。我已经尝试过大多数情况,但没有结果:(...任何人都请帮忙。我想要只使用capybararuby的cucumber解决方案..注意:我尝试了以下代码但没有结果。page.driver.browser.switch_to.frame"I0_1366100881331" 最佳答案 within_frame(find(''))doend

ruby - 如何让 Sinatra 避免添加 X-Frame-Options header ?

我正在使用Sinatra返回一些IFRAME内容,我想允许跨域src。不幸的是,Sinatra会自动在我的响应中添加一个X-Frame-Optionsheader。我该如何关闭它? 最佳答案 Sinatra使用Rack::Protection,特别是frame_options选项,这是设置X-Frame-Optionsheader的内容。您可以configurewhichprotectionsareused.默认情况下,Sinatra会打开它们中的大部分(有些仅在您也使用session时才启用,而Rack::Protection本身

javascript - 如何从 iframe(跨源)访问 onfocus 事件?

我有一个使用onfocus事件的html应用程序。切换浏览器选项卡时,它工作得很好。现在,当我将该应用程序作为另一个html页面中的iframe加载时,它无法正常工作,因为在切换选项卡时iframe没有聚焦。如何从iframe访问onfocus事件无需修改顶层代码。iframe和加载iframe的页面不是同源的。if(!window.parent.frames.length){window.onfocus=function(){//dosmth};}else{//???} 最佳答案 您可以使用HTML5可见性API。它允许您检测用户

javascript - 在 Shiny 中使用 JavaScript 获取呈现的 UI 中元素的属性

我正在尝试获取或更改Shiny中Javascript元素的属性。所以在下面的例子中,我想在使用Javascript渲染时直接获取iframe的宽度。我知道我可以设置iframe的宽度,但这不是目标。我还希望能够获得宽度以外的其他属性,例如iframe的frameBorder属性。Here它说“为x触发的最后一个事件是shiny:value”,所以我假设绑定(bind)到它会起作用:library(shiny)jsCode但是,我们可以看到alert已经在iframe实际呈现之前触发(?)所以我的问题是;如何在渲染时直接用Javascript获取iframe的宽度(或任何其他属性,例如f

javascript - 从 iframe 获取 url 并在浏览器 url 中更新哈希

我尝试了一些不同的方法,但没有任何效果,基本上我需要从iframe获取当前位置/url,获取我想要的部分并将其返回到url中的哈希。我如何在javascript中执行此操作? 最佳答案 选择正确的iframe元素,拉出src属性,做你的事情,将src分配给window.location.hashvariframe=$('iframe');varsrc=iframe.attr('src');window.location.hash=src;编辑如果您想从iframe获取动态位置,您必须访问contentWindow属性:varifra

c# - 如何检测我的网站是在 Facebook iframe 中还是在独立网站中

我想以编程方式检测我的网站是否在FacebookiFrame应用程序中,以便我可以显示特定的Facebook功能。否则,如果有人在没有Facebook的情况下访问网站。最好是FBML、C#或JS解决方案:)谢谢! 最佳答案 好吧,您始终可以使用基本的javascript检查页面是否被加框if(top===window){//pageisnotframed}此外,当用户首次点击您的Canvas页面时,Facebook平台会向您的回调URL发送一堆数据,无论是在正常的GET参数中还是在单个编码参数(取决于您的设置)中,您也可以检查这些数

javascript - 如何从 iframe 将元素附加到父主体?

我在iframe中有这段代码。$(document).ready(function(){$("body").append($("#ctap").html());});我想将#ctap的html附加到父正文。我该怎么做? 最佳答案 尝试在document.ready中执行以下代码parent.$("body").append($("#ctap").html()); 关于javascript-如何从iframe将元素附加到父主体?,我们在StackOverflow上找到一个类似的问题: