想做一个网页游戏脚本,但是到获取网页元素的时候卡住了,是frame框架

想做一个网页游戏脚本,但是到获取网页元素的时候卡住了,是frame框架,第1张

用JS:

documentgetElementByIdx('frameName')contentWindowdocumentgetElementByIdx('test')stylecolor='red'

用jQuery:

$(windowframes['frameName']document)find('#test')css('color','red');

selenium可以直接获取到页面动态渲染后的html元素,像你这个情况前提是要先切换到frame里,切换的代码是:driverswitch_toframe("frame1"),其中frame1是frame的id或name

这种方法是对的,不过前提是:你必须有足够权限访问 iframe Docuemnt —— 同域

例如,indexhtml 和 my_framehtml 都在同一域名下,或都在桌面,这样可以

如果你把 iframe 的 src 换为百度网址,就会出现类似下面的错误

Permission denied to access property 'getElementById'

无权访问 'getElementById' 属性

如果你的情况是后者,那就没有解决办法。如果是前者,可能你的代码中有错误。

$(function(){//相当天body的 onload,要等页页面加载完毕后才能找到iframe

 $("#hong")contents()find("body")append("I'm in an iframe!");

});

  </script>

  <iframe width="1198" height="729" name="hong" id="hong" src="" scrolling="no" style="text-align:center"></iframe>

在开发中,我们都会选择使用Masonry来做适配,但是有时我们又需要获取某个控件的frame,这时就会发现用Masonry布局的获取不到控件的frame。

这是因为用Masonry布局时控件的还没有在视图上展示出来,所以frame也就没有了,具体原理就得看Masonry实现的原理了,单用frame布局的就会有。

这时如果我们需要获取到frame的话就得刷新视图

这个方法将会刷新视图。在这个方法后就能获取frame

想要再深入了解的可以点这个链接看看

>

以下面的html代码为例,我们看一下如何定位frame上的元素。

framehtml

<html>

<head>

<title>Frame</title>

<style>

#f_1 {width: 10em; height: 10em; border: 1px solid #ccc; }

#f_2 {display: none}

</style>

</head>

<body>

<p id = "p">Outside frame</p>

<iframe id = "f_1" src = "part1htm"></iframe>

<iframe id = "f_2" src = "part2htm"></iframe>

</body>

</html>

part1htm

<html>

<head><title>Part1</title></head>

<body>

<p id = "f_p">This is part 1</p>

<input id = "btn" type = "button" value = "click me" onclick = "alert('hello')" />

</body>

</html>

switch_to方法会new1个TargetLocator对象,使用该对象的frame方法可以将当前识别的”主体”移动到需要定位的frame上去。

require 'selenium-webdriver'

dr = Selenium::WebDriverfor :chrome

frame_file = 'file:///'+Fileexpand_path(Filejoin(Filedirname(__FILE__),'framehtml'))

以上就是关于想做一个网页游戏脚本,但是到获取网页元素的时候卡住了,是frame框架全部的内容,包括:想做一个网页游戏脚本,但是到获取网页元素的时候卡住了,是frame框架、selenium的python自动测试的子frame的动态页面的元素控制、如何获取页面iframe元素内容的高、宽等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9462945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存