在一个frame中怎么获取另一个frame的元素的值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个frame中怎么获取另一个frame的元素的值?相关的知识,希望对你有一定的参考价值。
结构如下
<frameset>
<frame name="topFrame" id="topFrame">
<input type="text" id="leftUserId" value="$_USER.userId " />
</frame>
<frameset>
<frame name="leftFrame" id="leftFrame">
<input type="text" id="leftUserId" value="$_USER.userId " />
</frame>
<frame name="mainFrame" id="mainFrame">
<input type="text" id="mainUserId" value="$_USER.userId " />
</frame>
</frameset>
</frameset>
我在leftFrame里面写了下面这段js代码:
var top = window.parent.topFrame;
if(document.getElementById("leftUserId").value !=
top.document.getElementById("topUserId").value)
parent.topFrame.location.href = "top.do"
其中top可以取到。
同样的,我在mainFrame里面写了下面js代码:
var top = window.parent.topFrame;
if(document.getElementById("mainUserId").value !=
top.document.getElementById("topUserId").value)
parent.topFrame.location.href = "top.do"
为什么这里的top是null呢?
alert($(parent.frames["topFrame"].document).find("#leftUserId").val());
如果正解,请点赞,比较细致的看完了你的代码,给出答案。 参考技术A 这样document.getElementById("f_date").value
Python+Selenium 定位页面元素
1.跳转到Frame/Iframe ,再定位元素
理解:frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位
1.1方法一
如果iframe有name或id的话,直接使用switch_to_frame("name值")或switch_to_frame("id值")。如下:
driver=webdriver.Firefox()
driver.get(r‘http://www.126.com/‘)
driver.switch_to_frame(‘x-URS-iframe‘) #需先跳转到iframe框架
username=driver.find_element_by_name(‘email‘)
username.clear()
1.1方法二
如果iframe没有name或id的话,则可以通过下面的方式定位:
#先定位到iframe
elementi= driver.find_element_by_class_name(‘APP-editor-iframe‘)
#再将定位对象传给switch_to_frame()方法
driver.switch_to_frame(elementi)
PS:完成操作后,可以通过switch_to.parent_content()方法跳出当前iframe,或者还可以通过switch_to.default_content()方法跳回最外层的页面
2.Xpath 层级定位
2.1 通过绝对路径定位
例如:find_element_by_xpath("/html/body/div/div/div[2]/div[3]/a[2]").click()
绝对路径是从当前元素往前数最近的一个html 开始数的。
2.2 利用元素属性定位
地图有三个属性,href,name,class。
driver.findElement(By.xpath("//a[@name=‘tj_trnews‘]")).click();
driver.findElement(By.xpath("//a[@href=‘http://news.baidu.com‘]")).click()
driver.findElement(By.xpath("//a[@class=‘mnav‘]")).click();
driver.findElement(By.xpath("//a[contains(@href,"http://map.baidu.co")]")).click();
参考资料:
https://www.cnblogs.com/csj2018/p/9194618.html
https://www.cnblogs.com/yufeihlf/p/5689042.html
http://www.cnblogs.com/yufeihlf/p/5717291.html
以上是关于在一个frame中怎么获取另一个frame的元素的值?的主要内容,如果未能解决你的问题,请参考以下文章
Delphi中的Form中怎么调用Frame,ShowFrame()好像可以