我们为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测试我们的扩展。
答案 0 :(得分:1)
这是不可能的。由于safari浏览器的安全更新,在2.45中删除了扩展的自动安装。
答案 1 :(得分:1)
Safari扩展没有驱动程序,但我想你总是可以从python“open”执行命令。
这将打开Safari安装对话框,您可以使用Mac上的辅助功能API来回答它。
祝你好运。我希望它有所帮助。