selenium自动化模块学习(5)

2023-03-30 391 0

有时候网页是有框架frame存在,就会导致自动化模块无法定位到指定的元素。今天学习selenium的框架处理。

单层的frame需要先切换到对应的frame中,利用switch_to.frame()进行切换,括号里为所需切换
的frame的id、name、index等。下面举个例子

<html>
<head>
<title></title>
</head>
<body>
<iframe src="left.html" id="frame1" name="leftframe"></frame>
<iframe src="right.html" id="frame2" name="rightframe"></frame>
</body>
</html>

那么切换frame代码如下

from selenium import webdriver
driver=webdriver.firefox()

通过id定位

driver.switch_to.frame("frame1")

通过name定位

driver.switch_to.frame("leftframe")

通过索引定位

driver.switch_to.frame(0)

以上是单层框架的定位方式。有时候还会碰到多层框架嵌套的情况

<html>
<head>
<title></title>
</head>
<body>
<iframe id="frame1" >
    <iframe  id="frame2"/>
</frame>
</body>
</html>

像上述的frame多层嵌套,则需要逐层切换
先通过id切换到frame1
driver.switch_to.frame('frame1')
再通过id切换到frame2
driver.switch_to.frame("frame2")
当切换到frame2进行操作后,如果需要返回到frame1,则可使用
driver.switch_to.parent_frame()
返回到上一层frame中,类似于回退效果,当上一层是主文档时则无效
至于括号里是哪一个frame,直接搜索对应的框架属性即可

相关文章

Tkinter学习(2)
Tkinter学习(1)
selenium自动化模块学习(4)
selenium自动化模块学习(3)
selenium自动化模块学习(2)
selenium自动化模块学习(1)

发布评论