frame标签有frameset、frame、iframe三种,frameset和其它普通标签没有区别,不会影响正常定位,而frame与iframe对selenium定位而言是一样的。
Selenium有以下方法对frame进行操作。
示例网站:http://sahitest.com/demo/framesTest.htm
示例脚本:
from selenium import webdriver
from time import sleep
class TestFrame(object):
def setup(self):
self.driver = webdriver.Chrome()
self.driver.get("http://sahitest.com/demo/framesTest.htm")
def test_frame(self):
top = self.driver.find_element_by_name("top")
# 切换到上面的frame
self.driver.switch_to.frame(top)
#点击上面frame中的Link Test链接,打开新页面
self.driver.find_element_by_xpath("/html/body/table/tbody/tr/td[1]/a[1]").click()
#切换到主页面
self.driver.switch_to.default_content()
sleep(3)
# 切换到下面的frame
second = self.driver.find_element_by_xpath("/html/frameset/frame[2]")
self.driver.switch_to.frame(second)
# 点击下面frame中的Form Test链接,打开新页面
self.driver.find_element_by_xpath("/html/body/table/tbody/tr/td[1]/a[2]").click()
sleep(2)
self.driver.quit()
if __name__ == '__main__':
frame = TestFrame()
frame.test_frame()
以上来自:极客时间课程:selenium自动化测试课程学习总结。
以上就是python自动化测试selenium定位frame及iframe示例的详细内容,更多关于selenium定位frame及iframe的资料请关注编程网其它相关文章!