多浏览器处理
- chrome、firefox、headless等浏览器的自动化支持
- 传不同参数来测试不同的浏览器,用来做浏览器兼容性测试
- 在
setup()
中对os.getenv("browser")
进行判断
from selenium import webdriver
import os
class Base:
def setup(self):
"""
处理多浏览器
:return:
"""
browser = os.getenv("browser")
if browser == "firefox":
self.driver = webdriver.Firefox()
elif browser == "headless":
self.driver == webdriver.PhantomJS()
elif browser == "chrome":
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(5)
def teardown(self):
self.driver.quit()
- 以运行以下测试用例为例,执行测试用例时在terminal中输入:
browser=chrome pytest test_frame.py
就可使用 Chrome 浏览器运行
from time import sleep
from lessons.selenium_test.base import Base
class TestFrame(Base):
def test_frame(self):
self.driver.get("https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")
self.driver.switch_to.frame('iframeResult') # 切换到iframe中
drag = self.driver.find_element_by_id("draggable") # 获取drag元素
print(drag.text) # 打印元素的文本信息
"""切换到默认的frame
方法一:切换到父节点
方法二:切换到默认frame
"""
self.driver.switch_to.parent_frame() # 切换到父节点
self.driver.switch_to.default_content() # 切换到默认frame
print(self.driver.find_element_by_id("submitBTN").text) # 打印点击运行元素的文本
sleep(3)
下一节:执行JavaScript脚本,使用Selenium直接在当前页面中进行js交互。