Selenium 多窗口,网页frame 处理,多浏览器

Posted CSR-kkk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium 多窗口,网页frame 处理,多浏览器相关的知识,希望对你有一定的参考价值。

多窗口

场景:点击链接,打开新窗口,若想继续在新窗口上操作,需要切换窗口

方法:获取窗口的唯一标识用 句柄 表示,只需切换句柄,即可多窗口操作。

表达式说明
driver.window_handles获取所有的窗口句柄
driver.current_window_handle获取当前的窗口句柄
driver.switch_to.window(target_window)切换窗口

frame

什么是frame?
frame是html中的框架,在HTML中,所谓的框架就是可以在同一个浏览器中显示不止一个页面。
基于html的框架,又分为垂直框架(cols)和水平框架(rows)。

frame 分类:

  • frameset:和普通标签一样,可以正常定位到
  • frame
  • iframe
    后两者对selenium定位是一样的,有特定的方法对其操作。
表达式说明
driver.switch_to.frame()通过元素id 或 index 切换 frame
driver.switch_to.default_content()切换到默认frame
driver.switch_to.parent_frame()切换到父级 frame

多浏览器

通过传 不同参数 来测试不同的浏览器,做浏览器兼容性测试

    def setup(self):
        browser = os.getenv("browser")
        if browser == 'firefox':
            self.driver = webdriver.Firefox()
        elif browser == 'headless':
            self.driver = webdriver.PhantomJS()
        else:
            self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(5)

Terminal 中执行:browser=firefox pytest test_xx.py

以上是关于Selenium 多窗口,网页frame 处理,多浏览器的主要内容,如果未能解决你的问题,请参考以下文章

selenium 窗口切换(多表单切换)

selenium 常用API

Selenium-测试对象操作之:多窗口内嵌frame

python+selenium2自动化---多表单多窗口切换

selenium 多窗口切换

523selenium多窗口处理