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 处理,多浏览器的主要内容,如果未能解决你的问题,请参考以下文章