Java编程语言下Selenium驱动各个浏览器代码

这里采用的是Selenium3.7版本,首先介绍的是在Windows环境下运行的;

总结下注意事项:

1,设置各个浏览器的Driver路径

System.setProperty("","");

2,创建一个浏览器对象

WebDriver driver = new xxx();

1. 驱动IE浏览器

IE浏览器的驱动有32位和64位,两个版本,建议使用32的IEdriver,因为64位的IE driver 跑起来实在太慢了。

注意IE的保护模式,在各个状态下,全部禁用。如下截图,4个模式下,保护模式全部不勾选

Java编程语言下Selenium驱动各个浏览器代码

 package base;

 import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver; public class TestIEDriver { public static void main(String args[]) throws InterruptedException { System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get("http://www.baidu.com");
String s = driver.getTitle();
System.out.print(s);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Thread.sleep(1000);
driver.close(); }
}

2. 驱动Chrome浏览器

 package base;

 import java.util.Arrays;
import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities; public class TestChromeDriver { public static void main(String args[]) throws InterruptedException { System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--start-maximized"));
options.addArguments("--test-type", "--start-maximized");
WebDriver driver = new ChromeDriver(options);
driver.get("http://www.baidu.com"); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Thread.sleep(1000);
driver.close(); } }

3. 驱动火狐FireFox浏览器

 package base;

 import java.util.concurrent.TimeUnit;

 import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver; public class TestFireFoxDriver { public static void main(String args[]) throws InterruptedException { System.setProperty("webdriver.Firefox.driver", ".\\Tools\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://www.baidu.com");
String s = driver.getTitle();
System.out.print(s);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Thread.sleep(1000);
driver.close(); } }

浏览器驱动的下载地址

http://npm.taobao.org/mirrors/chromedriver/

http://chromedriver.storage.googleapis.com/index.html

https://github.com/mumuy/data_location

常见的错误汇总

1. org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Browser zoom level was set to 75%. It should be set to 100% (WARNING: The server did not provide any stacktrace information)

ie浏览器显示百分比,需要调节到100%

2. org.openqa.selenium.ElementNotVisibleException: The point at which the driver is attempting to click on the element was not scrolled into the viewport. (WARNING: The server did not provide any stacktrace information)

不同设备,窗口大小问题,页面没有显示全,需要向下滚动

3.org.openqa.selenium.SessionNotCreatedException: session not created exception: Chrome version must be >= 66.0.3359.0

Chrome浏览器驱动版本不匹配的问题,需要查询目前chrome版本,下载匹配的驱动

4.No such Element Exception
元素定位的方式有误,原因:页面源码改动
原因: 元素还不是可用的状态
原因: 出现弹窗

上一篇:JNLP(Java Web Start )(转)


下一篇:LeetCode题解-147 对链表进行插入排序 Medium