14

我想用我的扩展程序启动浏览器。在chrome中,我可以使用下面代码示例中的chromeOptions。 Firefox以类似的方式工作。在selenium中使用safariDriver启动safari扩展程序

ChromeOptions options = new ChromeOptions(); 
options.addExtensions(new File("/path/to/extension.crx")); 

但是在Safari中没有addExtensions方法。用Safari做这件事的正确方法是什么?

+0

我发现这从2年前,但它不再工作了https://stackoverflow.com/questions/15005833/browser-plugin-testing-with-selenium – mosaad

+0

我可以知道哪个版本的Safari使用? – iamkenos

+0

它应该没关系,但9或10 – mosaad

回答

0

您使用的是哪个版本的Selenium?看起来他们在June of 2013中加入了safariOptions.addExtensions("..");

SafariOptions options = new SafariOptions(); 
options.addExtensions(new File("path/to/extension.safariextz")); 
WebDriver driver = new SafariDriver(options); 
+0

我正在使用最新版本。此方法不再存在 – mosaad

+0

您是否尝试过此https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/4852#issuecomment-192096770? – TitusLucretius

-1

SafariDriverorg.openqa.selenium.safari包中的类用于访问Safari浏览器

WebDriver driver = new SafariDriver(); 
driver.get("https://stackoverflow.com"); 
0

苹果维护safaridriver实现不支持通过扩展配置WebDriver功能或其他自动化手段。如果您认为这是一个值得做的重要功能,请提供https://bugreport.apple.com/的增强请求,并提供您的用例的更多详细信息。

1

这可能有帮助。 https://github.com/SeleniumHQ/selenium/wiki/SafariDriver

我发现如果你想在safari里面打开另一个safari扩展,你必须从safari浏览器本身来做。 https://github.com/SeleniumHQ/selenium/wiki/SafariDriver-Internals#building-the-safaridriver

所以基本上:

  1. 注册的苹果公司(免费)的Safari开发者计划,并为扩展名的 签名证书。
  2. 构建SafariDriver扩展:$ ./go safari
  3. 安装扩展:
  4. 启动Safari浏览器
  5. 启用开发菜单(首选项>高级>显示在菜单制定菜单 栏)
  6. 打开扩展生成器(开发>显示扩展生成器)
  7. 添加一个新的扩展:$SELENIUM_CLIENT/build/javascript/safari-driver/SafariDriver.safariextension
  8. 单击安装
+0

尽管这可能会在理论上回答这个问题,但[这将是更可取的](// meta.stackoverflow.com/q/8259)在这里包含答案的基本部分,并提供了供参考的链接。 –

+1

感谢您的反馈,我已经改变了答案,希望更可爱。 – jakob

相关问题