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

相關問題