如何在Python中使用Selenium测试Safari扩展?

时间:2015-04-13 13:34:43

标签: python selenium safari safari-extension

我们为Chrome,Firefox和Safari创建了扩展程序,我们希望使用Selenium测试扩展程序。我已经使用我们的扩展程序为Chrome和Firefox创建了测试,现在我想测试我们的Safari扩展。我找到了关于Safari的this answer但是我没有找到如何用Python做的,我查了一下,Selenium 2.45.0(我们正在使用)没有定义SafariOptions,我也没发现我如何为Safari测试添加扩展。我们使用Safari进行远程测试,我在没有扩展的情况下使用Safari进行了测试,但是我没有发现如何在Python中使用Safari扩展创建测试。以下是相关功能:

def get_chrome_options(self, file_name):
    chrome_options = ChromeOptions()
    chrome_options.add_extension(extension=file_name)
    return chrome_options

def get_firefox_profile(self, file_name):
    firefox_profile = webdriver.FirefoxProfile()
    firefox_profile.add_extension(extension=file_name)
    return firefox_profile

def start_selenium_webdriver(self, caps, chrome_options=None, firefox_profile=None):
    print("Starting test \"{}\" with {} {}, resolution {}.".format(caps['name'], caps['browser'], caps['browser_version'], caps['resolution']))
    if (self.browser == "chrome"):
        self.driver = webdriver.Chrome(chrome_options=chrome_options)
    elif (self.browser == "firefox"):
        self.driver = webdriver.Firefox(firefox_profile=firefox_profile)
    else:
        self.driver = webdriver.Remote(
            command_executor='http://username:password@hub.browserstack.com:80/wd/hub',
            desired_capabilities=caps
        )
    self.driver.implicitly_wait(time_to_wait=5)
    self.driver.set_window_size(1920, 1080)
    size = self.driver.get_window_size()
    print("Window size: width = {}px, height = {}px.".format(size["width"], size["height"]))

如果您为本地和远程测试提供答案,我将不胜感激。我们想用Safari 7和8测试我们的扩展。

2 个答案:

答案 0 :(得分:1)

这是不可能的。由于safari浏览器的安全更新,在2.45中删除了扩展的自动安装。

答案 1 :(得分:1)

Safari扩展没有驱动程序,但我想你总是可以从python“open”执行命令。

这将打开Safari安装对话框,您可以使用Mac上的辅助功能API来回答它。

祝你好运。我希望它有所帮助。