1. 获取元素文本
WebElement类的getText()方法返回元素的innerText属性。所以元素里如果有子节点一样也会被返回出来。如下所示
1 public class GetText { 2 @Test 3 public void testGetText(){ 4 //启动driver,打开被测页面 5 System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 6 WebDriver driver = new ChromeDriver(); 7 driver.get("http://map.baidu.com"); 8 9 //等待一段时间,使得页面加载完成,避免出现无法找到元素的问题 10 try{ 11 Thread.sleep(2000); 12 }catch(Exception e){ 13 14 } 15 16 //取得元素 17 WebElement message = driver.findElement(By.className("open-map")); 18 19 //获得元素文本 20 String messageText = message.getText(); 21 22 //验证文本为“查看短租、求职、订餐、天气等更多专题地图 >>” 23 Assert.assertEquals(messageText, "查看短租、求职、订餐、天气等更多专题地图 >>"); 24 25 //可使用java string api方法进行部分匹配 26 Assert.assertTrue(messageText.contains("求职")); 27 Assert.assertTrue(messageText.startsWith("查看短租")); 28 Assert.assertTrue(messageText.endsWith(">>")); 29 30 //关闭driver 31 driver.quit(); 32 } 33 }
代码示例
2. 获取元素属性值
WebElement类的getAttribute()返回元素的属性值
3. 获取元素的css属性值
WebElement类的getCSSvalue()方法将返回元素的样式属性值
4. 在元素上执行鼠标双击
Actions类的doubleClick()方法
5. 执行JavaScript代码
JavascriptExecutor接口,可以任意执行JavaScript代码,尤其适用于一些Selenium WebDriver目前不支持的操作
((JavascriptExecutor) driver).executeScript(script);
6. 浏览器窗口最大化
driver.manage().window().maximize();
7. 处理windows进程
selenium WebDriver java 提供了windowsUtils类来和Windows系统交互。在测试开始时,我们需要关掉一些已经存在的进程。
1 public class KillWindows { 2 3 @Test 4 public void test(){ 5 6 //关闭ie浏览器进程 7 WindowsUtils.tryToKillByName("iexplore.exe"); 8 9 System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 10 WebDriver driver = new ChromeDriver(); 11 driver.get("http://www.baidu.com"); 12 13 driver.quit(); 14 } 15 }
示例代码
我们可以使用tryToKillByName方法来关闭任何的windows进程。
如果这个进程不存在则会抛出一个异常,但是,测试还是会正常的执行下去
8. 阅读/修改windows注册表中的值
WindowsUtils类提供了多种方法和windows操作系统的注册表进行交互。如果测试是运行在windows操作系统上的IE浏览器,则可能需要修改一些IE注册表里的设置。使用WindowsUtils类可以很方便的解决这个问题。
根据不同的返回值数据类型,可选择以下几种方法:
readStringRegistryValue()
readIntergerRegistryValue()
readBooleanRegistryValue()
修改:
writeStringRegistryValue()
writeIntergerRegistryValue()
writeBooleanRegistryValue()