首选用到的测试链接:链接: http://sahitest.com/demo/framesTest.htm.
源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title></title>
</head>
<frameset rows="*,*">
<frame name="top" src="index.htm">
<frame src="index.htm">
</frameset>
</html>
有多个frame标签时要先切到第一个frame标签中然后再去定位,以及切出的操作
代码操作如下:
from selenium import webdriver
from time import sleep
#测试链接用:http://sahitest.com/demo/framesTest.htm
class TestCase(object):
def __init__(self):
self.driver=webdriver.Chrome()
self.driver.get('http://sahitest.com/demo/framesTest.htm')
self.driver.maximize_window()
def test_frame(self):
#多个frame标签 所以先切到frame标签中再继续下面的定位
top=self.driver.find_element_by_name('top')
self.driver.switch_to.frame(top)
self.driver.find_element_by_xpath('/html/body/table/tbody/tr/td[1]/a[1]').click()
sleep(3)
# 切出frame 然后定位第二个frame
self.driver.switch_to.default_content()
#定位到第二个frame标签
second=self.driver.find_element_by_xpath('/html/frameset/frame[2]')
self.driver.switch_to.frame(second)
#点击第二个frame标签下的内容
self.driver.find_element_by_xpath('/html/body/table/tbody/tr/td[1]/a[1]').click()
sleep(3)
self.driver.quit()
if __name__ == '__main__':
case=TestCase()
case.test_frame()