Java使用自动化测试脚本selenium

查找元素(by)

cssselector

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

xpath

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

<html>
 <body>
  <form id="loginForm">
   <input name="username" type="text" />
   <input name="password" type="password" />
   <input name="continue" type="submit" value="Login" />
   <input name="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=new Select(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>
  <a href="continue.html">Continue</a>
  <a href="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);
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值