1、检查元素文本WebElement.getText()
Driver.findElement(By.id(“message”)).getText();
getText()方法返回元素的innerText属性。元素里面如果有子节点一样也会被返回出来。
2、检查元素的属性值WebElement.getAttribute()
Driver.findElement(By.id(“message”)).getAttribute(“align”);
3、检查元素的CSS属性值WebElement.getCSSvalue()
Driver.findElement(By.id(“message”)).getCSSvalue(“width”);
4、针对鼠标和键盘时间使用高级的用户交互API
Selenium WebDriver高级用户交互API允许我们通过使用Action类执行从键盘时间到简单或复杂的鼠标时间,如拖拽操作,按住一个按键然后执行鼠标操作。
Actions builder = new Actions(driver);
builder.click(selector.get(1))
.keyDown(Keys.CONTROL)
.click(selector.get(3))
.keyUp(Keys.CONTROL)
.build().perform();
首先创建一个Actions的实例,再调用相应事件方法然后build()方法,建立这么一组操作方法链,最后调用perform()来执行。Actions不能在隐藏的元素上进行操作。
5、在元素上执行双击操作
builder.doubleClick(selector.get(1)).build().perform();
6、执行拖拽操作
拖拽一个元素到另一个元素再放下,需要先定位源元素和目标元素,然后作为参数传递给dragAndDrop(source, target)
WebElement source =
driver.findElement(By.id(“draggable1”));
WebElement target =
driver.findElement(By.id(“draggable2”));
Actions builder = new Actions(driver);
Builder.dragAndDrop(source, target);
7、执行javascript代码
JavascriptExecutor js =
(JavascriptExecutor)driver;
String title = (String)js.executeScript("return document.title");
longlinks = (long)js.executeScript("var links =
document.getElementsByTagName('A'); "+"return links.length");
从javascript代码中返回数据,我们需要使用return关键字。
8、使用selenium
webdriver进行截图(TakesScreenshot)
File srcFile =
((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile,newFile("e:\\screenshot.png"));
TabkesScreenshot接口提供了getScreenshotAs()方法来捕捉屏幕,参数OutputType.FILE作为参数传递给getScreenshotAs()方法,告诉它将截图以文件形式返回。
9、使用RemoteWebDriver/Grid进行截图
(2.10)
10、将浏览器最大化
driver.manage().window().maximize();
11、自动选择下拉列表
Selenium WebDriver对于下拉列表可使用指定的Select类替代WebElement类。Select类提供了多种方法和属性来和HTML中的<Select>元素进行交互。
Select select = new
Select(driver.findElement(By.id("select")));
•
select.selectByVisibleText(“A”);//通过可见文本选择选项
• select.selectByValue(“1”);
//通过value属性选择
•
select.deselectAll();
•
select.deselectByValue(“1”);
•
select.deselectByVisibleText(“A”);
Select.deselectByIndex(0);
Select.isMultiple();//验证列表是否支持多选
Select.getOptions().size();//验证下拉表的数量
Select.getFirstSelectedOption().getText();//得到所选择的选项的文本
Select.getAllSelectedOptions();//得到所有已选择的选择,返回元素的集合
Select.getAllSelectedOptions().size();
在使用这些方法是要注意下拉列表是不是动态变化的。
12、自动选择单选按钮/自动选择多选框
isSelected();//检查是否已选择
click();//选择或取消选择
Selenium WebDriver提供了windowsUtils类来和Windows操作系统交互。在测试开始时,我们需要关掉已经打开的一些进程。
WindowsUtils.tryToKillByName(“firefox.exe”);
如果进程不存在则会抛出一个异常,但是测试还是会正常执行下去。
14、通过WebDriver中阅读windows注册表中值
如果测试时运行在Windows操作系统上的IE浏览器,则可能需呀修改一些IE注册表里的设置。
String sname =
WindowsUtils.readStringRegistryValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\OS");
但不是所有注册表都可以读取。
WindowsUtil也给予返回值不同提供了多种方法来读取注册表的值,如:readIntegerRegistryValue(), readBooleanRegistryValue().
15、通过WebDriver中修改windows注册表中值。
WindowsUtils.writeStringRegistryValue(“HKEY_CURRENT_USER\\SOFTWARE\\Selenium\\SeleniumVersion”,”2.24”)
WindowsUtils.writeStringRegistryValue()通过注册表的路径找到相应的位置,如果值存在则修改,如果不存在则创建。同时,给予写入数据类型也提供了其他两种方法writeIntegerRegistryValue(),
writeBooleanRegistryValue().