/// <summary> /// Initializes a new instance of the Lynda.Test.Browsers.SafariBrowser class, opens a new Safari window and navigates to /// the specified uri. /// </summary> /// <param name="uri">uri to navigate to in the new Safari window.</param> internal SafariBrowser(string uri, bool killExisting) { if (installedExePath == null) { throw new Exception(string.Format("Safari is not installed. Expected location:{0}", expectedExePath)); } if (installedVersion != supportedExeMajorVersion) { throw new Exception(string.Format("Safari version {0} ({1}) is not supported by this class. Supported version: {2}.", installedVersion, installedExePath, supportedExeMajorVersion)); } safariRepo = new Safari(); //Kill existing browser processes before opening a new browser. if (killExisting) { Host.Local.KillBrowser(BrowserProduct.Safari.ToString()); } //Open browser OpenBrowser(uri, BrowserProduct.Safari.ToString(), new RxPath("/form[@processname='Safari']")); //Update repository instance base path to include native window handle attribute for the form safariRepo.Form.BasePath = new RxPath(String.Format("/form[@processname='Safari' and @handle='{0}']", handle)); Validate.Exists(safariRepo.Form.BasePath); }
public void Safari_IPad() { var isSafari = Safari.TryParse(UserAgents.Safari_IPad, out var safari); Assert.True(isSafari); Assert.Equal(DeviceTypes.Tablet, safari.DeviceType); Assert.Equal(OperatingSystems.IOS, safari.OS); }
public void Safari_Windows() { var isSafari = Safari.TryParse(UserAgents.Safari12_Windows, out var safari); Assert.True(isSafari); Assert.Equal(DeviceTypes.Desktop, safari.DeviceType); Assert.Equal(OperatingSystems.Windows, safari.OS); }
public void Safari_Windows() { var isFireFox = Safari.TryParse(UserAgents.Safari12_Windows, out var firefox); Assert.True(isFireFox); Assert.Equal(DeviceTypes.Desktop, firefox.DeviceType); Assert.Equal(OperatingSystems.Windows, firefox.OS); }
public void Safari_IPhone() { var isFireFox = Safari.TryParse(UserAgents.Safari_IPhone, out var firefox); Assert.True(isFireFox); Assert.Equal(DeviceTypes.Mobile, firefox.DeviceType); Assert.Equal(OperatingSystems.IOS, firefox.OS); }
public void Safari_OSX() { var isSafari = Safari.TryParse(UserAgents.Safari12Osx, out var safari); Assert.True(isSafari); Assert.Equal(DeviceTypes.Desktop, safari.DeviceType); Assert.Equal(OperatingSystems.MacOSX, safari.OS); }
public void Safari_IPhone() { var isSafari = Safari.TryParse(UserAgents.SafariIPhone, out var safari); Assert.True(isSafari); Assert.Equal(DeviceTypes.Mobile, safari.DeviceType); Assert.Equal(OperatingSystems.IOS, safari.OS); }
public void InitWebKit(Gtk.Box w) { HoldingWidget = w; wb = new Safari(new System.Drawing.RectangleF(10, 10, 200, 200), "foo", "bar"); wb.OnKeyDown += OnKeyDown; scrollWindow.AddWithViewport(NSViewToGtkWidget(wb)); w.PackStart(scrollWindow, true, true, 0); w.ShowAll(); wb.ShouldCloseWithWindow = true; }
public void Test() { Safari Safari = new Safari(); string ua1 = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"; Assert.IsTrue(Safari.UserAgentRegex.IsMatch(ua1)); string ua2 = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"; Assert.IsFalse(Safari.UserAgentRegex.IsMatch(ua2)); }
private Browser GetBrowser() { var agent = UserAgent.ToString(); var ie = new InternetExplorer(agent); if (ie.Type == BrowserType.IE) { return(ie); } var firefox = new Firefox(agent); if (firefox.Type == BrowserType.Firefox) { return(firefox); } var edge = new Edge(agent); if (edge.Type == BrowserType.Edge) { return(edge); } var opera = new Opera(agent); if (opera.Type == BrowserType.Opera) { return(opera); } var chrome = new Chrome(agent); if (chrome.Type == BrowserType.Chrome) { return(chrome); } var safari = new Safari(agent); if (safari.Type == BrowserType.Safari) { return(safari); } return(new Browser()); }
// Protected implementation of Dispose pattern. protected virtual void Dispose(bool disposing) { if (disposed) { return; } if (disposing) { wb.Dispose(); wb = null; socket.Dispose(); socket = null; scrollWindow.Destroy(); } // Free any unmanaged objects here. // disposed = true; }
public static string GetBrwoserInfo(string userAgent) { var ie = new InternetExplorer(userAgent); if (ie.Type == BrowserType.IE) { return(string.Format("{0} {1}", ie.Type.ToString(), ie.Version)); } var firefox = new Firefox(userAgent); if (firefox.Type == BrowserType.Firefox) { return(string.Format("{0} {1}", firefox.Type.ToString(), firefox.Version)); } var edge = new Edge(userAgent); if (edge.Type == BrowserType.Edge) { return(string.Format("{0} {1}", edge.Type.ToString(), edge.Version)); } var opera = new Opera(userAgent); if (opera.Type == BrowserType.Opera) { return(string.Format("{0} {1}", opera.Type.ToString(), opera.Version)); } var chrome = new Chrome(userAgent); if (chrome.Type == BrowserType.Chrome) { return(string.Format("{0} {1}", chrome.Type.ToString(), chrome.Version)); } var safari = new Safari(userAgent); if (safari.Type == BrowserType.Safari) { return(string.Format("{0} {1}", safari.Type.ToString(), safari.Version)); } throw new ArgumentException("找不到符合的浏览器类型!"); }