WebDriver针对各个浏览器的使用情况如下。
1、chrome浏览器大于版本48,下载驱动,如下chromeDriver下载
http://chromedriver.storage.googleapis.com/index.html
2、解压后,放入到/usr/local/bin,即可启动chrome浏览器
@Test
public void openChrome(){
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
WebDriver webDriver = new ChromeDriver();
}
————————————————————————————————————
firefox浏览器,版本大于47后,也需要下载它的驱动,GeckoDriver
firefox驱动的下载地址:https://github.com/mozilla/geckodriver/releases
根据自己浏览器版本好,查到需要哪个版本的geckoDriver
__________________________________________________________
三、Selenium截取当前页面
//将webDriver强转为TakesScreenshot,获取截屏以文件输出
File file = ((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE);
//复制截图的文件到某文件下
FileUtils.copyFile(file,new File("/Users/yp-tc-m-2935/Documents/seleniumdemo/drivers/auth.png"));
___________________________________________________________________
四、处理弹框
四、已交控制器
(1)针对Alert、Confirm弹框是js写的,页面无法定位到该弹框,需将webDriver权限转交给Alert来处理弹框。
Alert alert = webDriver.switchTo().alert();
//点击确认
alert.accept();
//点击取消
alert.dismiss();
//在弹框中输入内容
alert.sendKeys("关闭通道");
webDriver.switchTo().defaultContent();//将权限交回来
五、选择框
Select select = new Select(“选择框的元素”);
六、窗口
String hangdle = webDriver.getWindowHandle(); //获取当前窗口的句柄
七、等待
全局等待,是每个元素都要等待,效率低,最好用显示等待,即单个元素等待。
显示等等:
//直到某个元素出现
WebDriverWait wait = new WebDriverWait(webDriver,10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("we")));//等待的那个元素
八、无头浏览器,执行脚本时,不会打开浏览器
十、打开chrome的新标签
操作方法,在控制台中使用js代码,尝试打开新浏览器
JavascriptExecutor js = (JavascriptExecutor)webDriver;
js.executeScript("window.open(\"http://www.baidu.com\");\n");