Selenium-简介

一、简介

Selenium是UI自动化的一个框架。

Selenium1.0时代就是用js注入技术与浏览器交互。

Selenium WebDriver就是调用浏览器原生的API来实现的操作。他是Client/server模式的。意思就是说我们写的命令经过Selenium的Server端捕获,然后翻译成浏览器可以执行的操作,浏览器执行了之后的返回结果经过Server端翻译返回给客户端,这里的客户端其实就是我们写的代码。

Selenium3.0,支持Edge浏览器,支持IE9以上等等,现在我们还是用的2.0。

支持多种操作系统windows、linux、os,支持多种浏览器火狐、IE、谷歌、Sarif等等。

Java是Oracle公司的。

二、用法简介

1、浏览器的操作

可以通过driver.navegate对浏览器进行操作,比如back回退、forword前进、to到某一个url地址。

还可以直接操作driver.quit退出浏览器,driver.close关闭浏览器。

2、元素定位

元素定位主要有7种。id、name、class、tag、linktext、css、xpath。经常用的也就是id和css。css如果太复杂的话我们可以通过浏览器F12查看元素定位,得到css路径。

我们得到元素了之后就可以对元素进行操作,比如sendkeys、gettext、getattribute等等。

还可以对页面进行截图,这也是经常用的方法,当断言失败或者遇到异常的时候就截图getScreenShot操作。

3、Actions

就是对浏览器进行的操作,比如鼠标、键盘的操作。鼠标操作有click、doubleclick、movetoelement移动、dtag拖拽等等操作。键盘可以对输入框输入键盘上的key以模拟键盘操作。

4、JS

有的时候我们会去执行javascript脚本。把driver转成JavascriptExcecutor,然后通过这个对象执行ExcecuteScript脚本代码。还可以对js方法传参数,比如我们通过selenium框架得到了某个元素,可以通过arguments[0]这种方式操作元素,还可以得到方法的返回值,返回值通过string接受,然后再转。

5、Switch

当我们打开了几个页面或者页面有iframe或者操作alert的时候需要先switch到相关的页面或者iframe上才能操作元素。

当我们操作alert的时候先switch.alert到弹出框上,然后再通过方法accept或者dismiss点击确定或者取消操作。

6、等待

等待是因为有的时候执行脚本的时候,元素还没有加载出来,我们就通过等待等到元素加载出来在操作。等待分为3种:

1)强制等待,就是通过java的Thread.Sleep等待。

2)隐士等待,就是通过对driver的设置,设置了之后,整个通过driver操作元素都会等待。

driver.manage().timeouts().implicitlyWait获取元素的时间设置;还有pageLoadTimeout页面加载的时间设置;setScriptTime脚本执行时间的设置。

3)显示等待,上面两种等待都有弊端,我们一般都用显示等待,就是需要等待的地方才执行等待的操作。WebDriverWait对象,wait.until传入要找元素的代码,如果超时还没有找到异常,如果找到了继续执行。

WebDriverWait wait = new WebDriverWait(driver, 10);

WebElement rElement = wait.until(new ExpectedCondition<WebElement>() {

public WebElement apply(WebDriver d) {

return d.findElement(By.cssSelector("input[type='radio'][name='company']:checked"));

}

});

7、断言

Selenium提供了Assert、Verify断言。Assert断言失败会停止执行;Verify断言失败继续执行,但是会记录日志。

posted on 2019-04-03 15:06  zh1990  阅读(298)  评论(0编辑  收藏  举报

导航