自动化测试Selenium在小公司的成功实践案例(三)

发表于:2021-12-08 09:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:邵磊    来源:掘金

  selenium
  这个版本是简易版,但足够。

  最终效果

  我们通过录制selenium脚本,编辑,提交到git库,由jenkins自动化编译出jar包,通过bat命令在任意一台pc端执行(默认开发人员提交代码后自动执行所有模块)。按功能模块,测试项目,生成测试报告。对测试不通过的模块:

  最大化
driver.manage().window().maximize();

  打开页面
driver.get("https://www.baidu.com");

  定位元素

  多个相同时,返回第一个,没有找到会抛异常NoSuchElementException
WebElement element = driver.findElement(*);

  当返回多个时:
List<WebElement> elements = driver.findElements(*);

  定位元素方式
<input class="input_class input_class2" type="text" name="user-name" id="user-id" />

  通过id定位
WebElement element = driver.findElement(By.id("user-id"));

  通过name定位
WebElement element = driver.findElement(By.name("user-name"));

  通过className定位
WebElement element = driver.findElement(By.className("input_class.input_class2"));

  注意多个class用小数点隔开,也可以使用cssSelector定位
WebElement element = driver.findElement(By.cssSelector("input"));

  通过linkText定位,如:
WebElement element = driver.findElement(By.linkText("我是如何重构整个研发项目,促进自动化运维DevOps的落地?"));

  意思就是链接内容定位,通过partialLinkText定位,模糊内容定位,和上相似:
WebElement element = driver.findElement(By.linkText("我是如何重构整个研发项目?"));

  通过tagName定位:
WebElement element = driver.findElement(By.tagName("form"));

  通过xpath定位:
WebElement element = driver.findElement(By.xpath("//input[@id='passwd-id']"));

  这个最为复杂,最简单的版本是:
//标签类型[@属性名=属性值]

  但也可以定位第几个:
//input[4]

  其中[]中还可以增加逻辑and or表达式:
WebElement element = driver.findElement(By.xpath("//input[@type='text' and @name='user-name']"));
WebElement element = driver.findElement(By.xpath("//input[@type='text' or @name='user-name']"));

  []中也可以增加start-with、ends-with、contains,比如:
WebElement element = driver.findElement(By.xpath("//input[start-with(@id,'user-')]"));
WebElement element = driver.findElement(By.xpath("//input[ends-with(@id,'user-')]"));
WebElement element = driver.findElement(By.xpath("//input[contains(@id,'user-')]"));

  还可以任意属性名:
WebElement element = driver.findElement(By.xpath("//input[@*='user-name']"));

  更多xpath使用方法见 http://www.w3school.com.cn/xpath/index.asp,单击某个元素:
.click()

  清空input:
.clear();

  input中输入内容:
.sendKeys("掘金网");

  如果是上传附件,可直接sendKeys路径:
.sendKeys("c:\shao.png");

  得到input内容:
.getText();

  下拉框

    Select select = new Select(driver.findElement(By.id("frequency")));
    select.selectByValue("1");
    driver.findElement(By.id("validDays")).click();

    select.selectByValue("a"); 
    select.deselectAll();
    select.deselectByValue("a");
    select.deselectByVisibleText("");
    select.getAllSelectedOptions();
    select.getFirstSelectedOption(); 

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号