java环境下对web界面元素每隔两秒进行查询

    有时在做web自动化时,需要对界面元素进行持续查询,当查询到后才能进行后续操作,这时就需要写个专门的方法进行操作,我这边因为之前写过判断元素是否存在的方法,所以可以在该方法的基础上进行修改。

1、首先创建一个循环然后通过xpth获取某个元素,将该元素存放在变量by中,再调用判断元素是否存在方法,如果存在则通过break退出循环,如果不存在则等待两秒后再次查找,

        循环查看元素代码如下 创建一个CheckElement 类,主要通过while循环来对元素进行持续查找。

package com.xmt.tool;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

/*每两秒检测一下元素是否存在*/
public class CheckElement {
    WebDriver driver;

    @Test
    public void checkElement(WebDriver driver, By by) throws InterruptedException {
        /*调用JudgeElement 类判断元素是否存在*/
        JudgeElement issueJe = new JudgeElement();
        while (true) {
            // 当单独筛选舆情标题时可通过该方法进行验证是否下派成功
            //By byT = By.xpath("(//*[text()='详情 '])[1]");
            Boolean blT = issueJe.isJudgingElement(driver, by);
            //当单独筛选舆情标题时可通过该方法进行验证是否下派成功
            if (blT) {//判断能否获取到已下发字段,如果该元素存在则下派成功
               System.out.println("所查找的元素存在");
                break;
            } else {
                System.out.println("所查找的元素不存在,持续查找中...");
                Thread.sleep(2000);
            }
        }
    }
}

2、在CheckElement 类中的while循环需要调用JudgeElement类中判断元素是否存在的方法,不然找不到元素会直接报错,通过该方法如果找不到元素可以直接返回false

JudgeElement类代码如下

package com.xmt.tool;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class JudgeElement {
    /**
     * 判断某个元素是否存在
     */
    public boolean isJudgingElement(WebDriver driver, By by) {
        try {
           //如果存在则返回true
            driver.findElement(by);
            return true;
        } catch (Exception e) {
            //元素不存在则返回false
            //System.out.println("不存在此元素");
            return false;
        }
    }
}

3、检查元素类创建好就需要在主体类中进行调用了,调用代码如下

        例如我需要持续查看界面退出登陆的按钮,就需要通过By.xpath来获取该元素,将其存储到by中,并将该参数传递要需要引用的检查方法中即CheckElement 类中的checkElement方法。

        注意:driver,by都是需要在主体类中创建的参数,需要放在引用方法中使用。

        /*对登陆后的某个元素进行查找,当时登陆后才进行后续操作*/
        By by=By.xpath("//*[text()='退出登录']");
        CheckElement ce=new CheckElement();
        ce.checkElement(driver,by);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值