Selenium API

上一篇 / 下一篇  2015-03-10 19:28:08 / 个人分类:原创

二、使用Selenium API

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();//选择或取消选择

13、处理windows进程

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().


TAG:

引用 删除 田double双   /   2017-09-11 20:40:21
1
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2017-09-20  
     12
3456789
10111213141516
17181920212223
24252627282930

数据统计

  • 访问量: 4677
  • 日志数: 25
  • 建立时间: 2014-11-10
  • 更新时间: 2015-03-12

RSS订阅

Open Toolbar