webDriver.findElement(By.xpath(".//*[@id='kw']")).clear(); 清空输入框
4.7 设置元素等待
如今大多数Web 应用程序使用AJAX 技术。当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成的,这给元素的定位增加了困难。如果因为在加载某个元素时延迟而造成元素定位失败的情况,那么就会
降低自动化脚本的稳定性。我们可以通过设置元素等待提高这种问题而造成的不稳定。
4.7.1 timeouts 方法
WebDriver 提供了几种方法来等待元素。
implicitlyWait 。识别对象时的超时时间。过了这个时间如果对象还没找到的话就会抛出NoSuchElement 异常。
setScriptTimeout。异步脚本的超时时间。WebDriver 可以异步执行脚本,这个是设置异步执行脚本脚本返回结果的超时时间。
pageLoadTimeout。页面加载时的超时时间。因为WebDriver 会等页面加载完毕再进行后面的操作,所以如果页面超过设置时间依然没有加载完成,那么WebDriver 就会抛出异常。
4.7.2 sleep 休眠方法
有时间我们希望脚本执行到某一位置时做固定时间的休眠,尤其是在脚本调试的过程中。那么可以使用Thread.sleep()方法,需要说明的是该方法Java 的提供。
记录cookie
通过向浏览器中添加cookie 可以绕过登录的验证码,这是比较有意思的一种解决方案。例如我们在第一次登录某网站时勾选“记住密码”的选项,当下次再访问该网站时自动就处于登录状态了。这样自然就绕过了验证码问题。那么这个“记住密码”的功能其实就记录在了浏览器的cookie 中。前面已经学了通过WebDriver 来操作浏览器的cookie,可以通过add_cookie()方法将用户名密码写入浏览器cookie ,当再次访问网站时,服务器将直接读取浏览器cookie 登录。
4.4 鼠标事件
通过前面例子了解到,可以使用click()来模拟鼠标的单击操作,现在的Web 产品中提供了更丰富的鼠标交互方式,例如鼠标右击、双击、悬停、甚至是鼠标拖动等功能。在WebDriver 中,将这些关于鼠标操作的方法封装在ActionChains 类提供。
Actions 类提供了鼠标操作的常用方法:
- contextClick() 右击
- clickAndHold() 鼠标点击并控制
- doubleClick() 双击
- dragAndDrop() 拖动
- release() 释放鼠标
- perform() 执行所有Actions 中存储的行为
-
//ctrl+a 全选输入框内容 input.sendKeys(Keys.CONTROL,"a"); //ctrl+x 剪切输入框内容 input.sendKeys(Keys.CONTROL,"x"); //ctrl+v 粘贴内容到输入框 input.sendKeys(Keys.CONTROL,"v");
4.11 警告框处理
在WebDriver 中处理JavaScript 所生成的alert 、confirm 以及prompt 十分简单, 具体做法是使用switch_to_alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/ sendKeys 等方法进行操作。
- getText():返回alert/confirm/prompt 中的文字信息。
- accept(): 接受现有警告框。
- dismiss():解散现有警告框。
- sendKeys(keysToSend): 发送文本至警告框。keysToSend:将文本发送至警告框。
https://blog.csdn.net/pythias_/article/details/85989515 testng