Selenium查找元素等待Utlis,根据自己需求来进行等待

自己写的Selenium查找元素等待demo


由于很多时候,做UI自动化的时候,都会有那种要稍等一下才会显示出来的元素,其实Selenium是支持显示/隐式等待的,但是感觉并不是很适合自己,我没看过其中的源码,只是根据自己的思路写了一查找元素等待的工具类其中的一个方法

package app.utils;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UIUtils {
    public static Logger logger = LoggerFactory.getLogger(UIUtils.class);
    public static void waitByXpath(WebDriver driver, String xpath,int seconds,int everyFindTime) throws InterruptedException,NoSuchElementException {
        //计算需要查询的次数
        int count = ((seconds - 1 )/ everyFindTime) + 1;
        while (count > 0) {
            try {
                Thread.sleep(1000*everyFindTime);
//                seconds = seconds - everyFindTime;
                count--;
                driver.findElement(By.xpath(xpath));
            } catch (NoSuchElementException e) {
                if (count <= 0){
                    logger.error("最后一次查找,没找到,请检查页面...");
                    throw new NoSuchElementException(Xpath);
                }
                logger.error("本次查找未找到元素,还将继续查找"+count+"次,"+everyFindTime+"S之后将再次查找...");
                continue;
            }
            logger.info("元素已找到,停止等待...");
            break;
        }
    }
}

入参:
dirver : selenium的driver
seconds : 想要等待的时间(S)
xpath : 查找元素的Xpath表达式
everyFindTime : 每几秒查询一次

这只是一个demo。其实还可以改成获取title,找ID,css样式等等方式来做元素查找的等待,代码基础不好,所以只能写的简单粗暴一些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值