2016-09-24 7 views
1

Safari Webブラウザをeclipseで開いて、Macでselenium webドライバを開く簡単なコードを書きました。また、safari exeを探す場所とmac plzz help.thanksに配置する場所selenium web driver MacでSafariで到達不可能なブラウザ例外

package sanityTest; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.safari.SafariDriver; 

    public class AdminLogin { 
    public static void main(String[]args){ 
     WebDriver driver=new SafariDriver(); 
     //driver.close();//close the browser 
    } 

} 

私は

2016年9月24日以下このエラー

強いテキストエラー午前1時22分31秒AMはを開始org.openqa.selenium.safari.SafariDriverServer取得しています10情報:サーバーはポート3897で起動しました 2016年9月24日1:22:31 AM org.openqa.selari.safari.SafariDriverCommandExecutor start INFO:Safariの起動 2016年9月24日1:22:31 AM org.openqa.selenium SafariDriverは1時22分41秒AM 2016年9月24日を接続org.openqa.selenium.safari.SafariDriverCommandExecutor INFOを停止するのを待っ: 2016年9月24日午前1時22分41秒AMをシャットダウン INFOを開始.safari.SafariDriverCommandExecutorサファリ を停止する2016年9月24日午前1時22分41秒AM org.openqa.selenium.safari.SafariDriverCommandExecutor INFO停止:org.openqa.selenium.safari.SafariDriverCommandExecutor INFOを停止停止サーバー 2016年9月24日1時22分に: 41 AM org.openqa.selenium.safari.SafariDri verServerの停止 INFO:サーバーの停止 2016年9月24日1:22:41 AM org.openqa.safari.SafariDriverCommandExecutor stop INFO:シャットダウンが完了しました。 Sep 22、2016 1:22:41 AM org.openqa.selenium。 safari.SafariDriverCommandExecutorは INFOを停止:停止サーバー 2016年9月24日午前1時22分41秒AMのorg.openqa: INFOを停止org.openqa.selenium.safari.SafariDriverCommandExecutor 2016年9月24日午前1時22分41秒AMをシャットダウンします。 selenium.safari.SafariDriverCommandExecutor stop INFO:シャットダウンが完了しました スレッド "main"の例外org.openqa.selenium.remote.UnreachableBrowserException:10080 ms後にSafariDriverに接続できません ビルドインフォメーション:バージョン: '不明'、改訂: 'c7b525d '、時刻: '2016-09-01 14:52:30 -0700' システム情報:ホスト: 'Vishals-MacBook-Pro.local'、ip: '192.168.0.26'、os.name: 'Mac OS X'、ドライバの情報:driver.version:SafariDriver at org.openqa.selenium.safari.SafariDriverCommandExecutor.start() SafariDriverCommandExecutor.java:118)ORGでorg.openqa.selenium.remote.RemoteWebDriver.startClient(RemoteWebDriver.java:284) でorg.openqa.selenium.safari.SafariDriver.startClient(SafariDriver.java:116) で。 (SafariDriver.java:78) (org.openqa.selenium.safari.SafariDriver)(SafariDriver.java)(SafariDriver.java:78) (org.openqa.selenium.safari.SafariDriver) :58) sanityTest.AdminLogin.main(AdminLogin.java:10)

+0

私のMacには、firefoxとseleniumの両方のWebドライバの最新バージョンがあります。これらの互換性についてはわかりません。これは問題でしょうか? –

+0

私はサファリと火のキツネを試してみましたが、私はここで両方の例外が発生しています –

答えて

1

Mac OS上のSafari WebDriverは、具体的にはhereという特定のWebDriverブラウザ拡張をコンパイル、署名、インストールする必要があります。これを行うには、無料のアップルデベロッパーアカウントにサインアップし、エクステンションに署名するためのテストキーを取得する必要があります。

Safariブラウザを遠隔操作するこの方法は、現在移行中です。 Safari 10の今後のリリースでは、Webkit開発者はWebDriverのネイティブサポートをSafariブラウザ自体に組み込んでいます。私の意見では、現在Safariを自動化する最も簡単な方法は、Safari Technology Previewをダウンロードし、現在のスナップショット版のSeleniumを使用してWebDriverを起動することです。Safariの新しいWebDriver機能hereの使い方に関する説明があります。

+0

ありがとう!!また、私はfirefoxとchromeドライバの問題に直面しています。これは何か "スレッドの例外"のメイン "java.lang.IllegalStateException:ドライバの実行可能ファイルが存在しません:/ path/to/chromedriver"どこに配置するのか分かりませんシステム内のブラウザを開き、このMACシステム上でパスを設定します。私は非常に新しいと初回のためにそれをやっています。 –

0

私はMacマシンでSafariブラウザを起動する際にも問題に直面していました。ドライバのinitを呼び出すたびにブラウザが開かれていましたが、URLはヒットしませんでした。私はセレン、Java、mavenとtestngと一緒にPageオブジェクトファクトリを使用しています。

if (browserType.equals("safari")) { 
      // System.setProperty("webdriver.safari.driver", workingDir + 
      // "//driver//SafariDriverServer.exe"); 
      System.setProperty("webdriver.safari.driver", 
        "/driver/SafariDriver.safariextz"); 
      System.setProperty("webdriver.safari.noinstall", "true"); 
      DesiredCapabilities desiredCapabilities = DesiredCapabilities 
        .safari(); 
      SafariOptions safariOptions = new SafariOptions(); 
      safariOptions.setUseCleanSession(true); 
      safariOptions.getUseCleanSession(); 
      safariOptions.setUseCleanSession(true); 
      desiredCapabilities.setCapability(SafariOptions.CAPABILITY, 
        safariOptions); 

      // deleteCookies(); 
      driver = new EventFiringWebDriver(new SafariDriver()); 

      ThreadDriver.set(driver); 
      // driver.manage().window().setSize(new Dimension(1024, 850)); 
      getDriver().manage().timeouts().implicitlyWait(3, 
        TimeUnit.SECONDS); 
      wait = new WebDriverWait(driver, 30); 
     } 
関連する問題