selenium驱动\控制器移交\无头浏览器\打开新标签

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");
发布了120 篇原创文章 · 获赞 12 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/ljj123_/article/details/104495297