0


Java使用自动化测试脚本selenium

记录几个Java使用自动化测试脚本selenium的问题

查找元素(by)

cssselector

通过使用标签的名称和属性(id,class)

xpath

通过正则表达式查找,用于多个同元素定位 .注意所有的属性名称都用@符号标志 例子:

<html><body><formid="loginForm"><inputname="username"type="text"/><inputname="password"type="password"/><inputname="continue"type="submit"value="Login"/><inputname="continue"type="button"value="Clear"/></form></body><html>
login_form = driver.findElement(By.xpath("/html/body/form[1]"))
login_form = driver.findElement(By.xpath("//form[@id='loginForm']"))
login_form = driver.findElement(By.xpath("//form[@id='loginForm']/input[2]"))//通过索引拿到指定的标签对象

其他比较简单的

By.tagName

标签名称 比如input ,li ,button

By.id

标签的id属性

By.className

标签的class属性

By.name

标签的name 一般是表单中input,select标签

赋值

  1. 输入框赋值基本为sendkeys()方法.如果type为file,该方法的值为文件路径.
  2. 下拉选择框赋值需要将Webelement对象转为Select对象,然后使用其内置方法进行赋值
WebElement ele=driver.findElement(By.id("mytag"));// 实例化select方法Select select_ele=newSelect(ele);// 通过select索引定位选择下拉框元素,注意索引从0开始
        select_ele.selectByIndex(1);Thread.sleep(1000);// 通过select的value定位选择下拉框元素
        select_ele.selectByValue("03");Thread.sleep(1000);// 通过select的文本内容定位选择下拉框元素
        select_ele.selectByVisibleText("白居易");

获取

<html><body><p>Are you sure you want to do this?</p><ahref="continue.html">Continue</a><ahref="cancel.html">Cancel</a></body><html>
  1. 如果是标签中的文字,直接用webelement.getText();
  2. 是属性值 webelement.getAttribute(‘属性名’);注: 获取一般的value属性值是需要用到getAttribute(‘value’);
  3. 获取下拉框选择的值:现将WebElement对象转换为Select对象,然后使用方法:select.getFirstSelectedOption().getText();

iframe元素

有些情况是iframe下的元素,所以我们需要先定位到iframe,然后才能找到其下方的元素:

可通过name或id、索引、webelement对象切换至iframe
代码

driver.switchTo().frame(xxx);

其构造方法如下
几个方法

补充一点:同级的iframe不知道如何切换,现在用的方法就是先退出iframe再进入其他的iframe

driver.switchTo().defaultContent(); // 退出iframe

shadowRoot

作为html里的组件渲染–shadowRoot,在selenium中是无法直接定位的.
我们需要先用执行js的方式找到该元素并返回,就可以操作了(当然也可以直接执行js来做相应的操作)

String js ="";JavascriptExecutor jsExecutor =(JavascriptExecutor) driver;
jsExecutor.executeScript(js);

有返回值:

JavascriptExecutor javascriptExecutor =(JavascriptExecutor) driver;WebElement webElement =(WebElement) javascriptExecutor.executeScript(js);
标签: java 测试工具

本文转载自: https://blog.csdn.net/big_title/article/details/124366558
版权归原作者 big_title 所有, 如有侵权,请联系我们删除。

“Java使用自动化测试脚本selenium”的评论:

还没有评论