以下打开各种浏览器的Java代码本人亲自写的,已经调试通过:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class HandleBrowser { public static void main(String[] args) throws InterruptedException { openBrowser("ie"); } public static void openBrowser(String browser) { WebDriver driver = null; String t = null; // 打開Firefox瀏覽器 if (browser.equalsIgnoreCase("Firefox") || browser.equalsIgnoreCase("FF")) { System.setProperty("webdriver.gecko.driver", "C:\\eclipse-workspace\\SeleniumFrameworkOne\\drivers\\geockdriver\\geckodriver.exe"); driver = new FirefoxDriver(); driver.get("http://www.baidu.com"); driver.manage().window().maximize(); t = driver.getTitle(); if (t.equals("百度一下,你就知道")) System.out.println("成功打开百度首页"); else { System.out.println("NO成功打开百度首页"); driver.close();//这句是有问题的,它之后判断条件为假时才会关闭ff浏览器 } } else if (browser.equalsIgnoreCase("Chrome") || browser.equalsIgnoreCase("CH")) { System.setProperty("webdriver.chrome.driver", "C:\\eclipse-workspace\\SeleniumFrameworkOne\\drivers\\chrome\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("http://www.baidu.com"); driver.manage().window().maximize(); t = driver.getTitle(); if (t.equals("百度一下,你就知道")) System.out.println("成功打开百度首页"); else System.out.println("NO成功打开百度首页"); driver.close(); }else if (browser.equalsIgnoreCase("IE")) { System.setProperty("webdriver.ie.driver", "C:\\eclipse-workspace\\SeleniumFrameworkOne\\drivers\\ie\\IEDriverServer.exe"); driver = new InternetExplorerDriver(); driver.get("http://www.baidu.com"); driver.manage().window().maximize(); t = driver.getTitle(); if (t.equals("百度一下,你就知道")) System.out.println("成功打开百度首页"); else System.out.println("NO成功打开百度首页"); driver.close(); } } }
=====以上代码在打开IE浏览器时会遇到IE保护模式的问题=====
解决IE保护模式的方案一:
把IE保护模式都设置到同一水平,越低越好。
方案二:
如果有多台电脑要设置保护模式就比较麻烦了,这时可以通过设置 Internet Explorer Driver 的 Capability 为 IE_ENSURE_CLEAN_SESSION 达到实现。
示例代码:
public class testInternetExplorerDriver{ public static void main(String[] args){ System.setProperty("webdriver.ie.driver", "C:\Driver\IEDriverServer_Win32_2.37.0_latest\IEDriverSer.exe"); DesiredCapabilities capab = DesiredCapabilities.internetExplorer(); capab.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true); capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); WebDriver driver = new InternetExplorerDriver(capab); driver.get("http://www.baidu.com"); } }
======另外,需要把IE Zoom level设置到100%=======
今天把IE放大到150%时,selenium直接报错,提示要把zoom设置为100%
以上都设置好了之后,换个网站做测试。
示例代码:
以下代码经测试正确无误。
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class HandleBrowser { public static void main(String[] args) throws InterruptedException { openBrowser("ie"); } @SuppressWarnings("deprecation") public static void openBrowser(String browser) { WebDriver driver = null; String t = null; // 打开Firefox浏览器 if (browser.equalsIgnoreCase("Firefox") || browser.equalsIgnoreCase("FF")) { System.setProperty("webdriver.gecko.driver", "C:\\eclipse-workspace\\SeleniumFrameworkOne\\drivers\\geockdriver\\geckodriver.exe"); driver = new FirefoxDriver(); driver.get("http://www.ctrip.com"); driver.manage().window().maximize(); t = driver.getTitle(); if (t.equals("携程旅行网官网:酒店预订,机票预订查询,旅游度假,商旅管理")) { System.out.println("Yes!成功打开百度首页"); } else { System.out.println("NO!没有成功打开携程首页"); } driver.close(); // 打开Google Chome } else if (browser.equalsIgnoreCase("Chrome") || browser.equalsIgnoreCase("CH")) { System.setProperty("webdriver.chrome.driver", "C:\\eclipse-workspace\\SeleniumFrameworkOne\\drivers\\chrome\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("http://www.ctrip.com"); driver.manage().window().maximize(); t = driver.getTitle(); if (t.equals("携程旅行网官网:酒店预订,机票预订查询,旅游度假,商旅管理")) { System.out.println("Yes!成功打开携程首页"); } else { System.out.println("NO!没有成功打开携程首页"); } driver.close(); // 打开IE } else if (browser.equalsIgnoreCase("IE")) { System.setProperty("webdriver.ie.driver", "C:\\eclipse-workspace\\SeleniumFrameworkOne\\drivers\\ie\\IEDriverServer.exe"); DesiredCapabilities capab = DesiredCapabilities.internetExplorer(); capab.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true); capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); driver = new InternetExplorerDriver(capab); driver.get("http://www.ctrip.com"); driver.manage().window().maximize(); t = driver.getTitle(); if (t.equals("携程旅行网官网:酒店预订,机票预订查询,旅游度假,商旅管理")) { System.out.println("Yes!成功打开携程首页"); } else { System.out.println("NO!没有成功打开携程首页"); } driver.close(); } } }
参考链接
转载自简书
https://www.jianshu.com/p/305ea89b87e9
转载自CSDN
https://blog.csdn.net/weixin_39430584/article/details/79723870