UI自动化语法就是元素+操作+数据的结合。在上一篇中已经列举了一些元素定位的方法,这篇文章中,主要记录对元素进行操作的方法。
文章目录
打开网址 get
返回类型是void,传入类型是string类型的url。
//初始化一个FirefoxDriver类型的对象
WebDriver driver = new FirefoxDriver();
//正确写法
driver.get("http://www.baidu.com");
driver.get("https://www.baidu.com");
//错误写法
driver.get("www.baidu.com");
特点
- 页面完全打开后,方法才结束。
注意
- 不判断重定向后页面的打开情况。
输入内容 sendKeys
返回类型是void,接受CharSequence类型的数据,即可以传入很多个参数。
//找到搜索输入框element
WebElement element = driver.findElement(By.id("kw"));
//正确写法
element.sendKeys("喜乐的博客");
/*
拆分字符串的方式输入多个参数,
有时可以避免被认为是机器人行为
*/
element.sendKeys("喜乐","的","博客");
使用对象
正确 | 错误 |
---|---|
<input type=“text”> | <input type=“button”> |
<input type=“username”> | <iframe></iframe> |
<input type=“password”> | <frame></frame> |
<textarea><textarea> | 其他标签 |
支持input这种tag类型,且type属性为text、username、password的元素;支持textarea这种tag类型;不支持input类型但type为button的元素,不支持iframe、frame,以及除以上,其他的标准html控件。
注意
- sendKeys是在原有的输入内容后追加输入,而不是清除内容后重新输入。
点击元素 click
返回类型是void.
//找到搜索按钮
WebElement element = driver.findElement(By.id("su"));
//点击
element.click();
找到元素后,页面发生跳转,此时这个元素由于无法关联到新的页面,调用click()方法时,就会抛出异常StaleElementReferenceException。
使用对象
正确 | 错误 |
---|---|
其他所有元素 | <a style = “visibility:hidden”></a> /*不可见元素*/ |
<a style = “height:0px;width:0px”></a> /*高和宽都是0的元素*/ |
操作特性
- 所有元素都是可以被点击的
注意
- 被点击元素不能被遮挡
- 元素不能被隐藏。css设置为隐藏的元素,调用click()点击时,会抛出元素不可点的异常。
清空内容 clear
返回类型是void.
//找到密码输入框
WebElement element =</