繁体   English   中英

Selenium WebDriver:检查是否存在元素一段时间循环?

[英]Selenium WebDriver: Check if element present or not for a while loop?

假设有一个页面我要检查页面上是否存在元素“ abc”。 如果不存在该元素,那么我想单击其他一些元素“ xyz”,然后打开新页面,然后再次检查该页面上是否存在元素“ abc”。 如果再次不存在,则单击同一元素“ xyz”,然后继续。

我使用了while循环,下面是代码。 请帮帮我。

在我下面的代码中:“ elem_prev”是我每次要检查页面上是否存在的元素。 我的代码无法正常工作,现在它无法在循环中找到该元素,但它应该存在于每个页面上。 也请帮助我了解这些概念。 代码正确吗?

对于循环中存在的元素,它表示无法定位元素。

Boolean elem_prev = driver.findElements(By.id("TM_TL_DD_WRK_GET_DATA")).size()!=0;
    while(elem_prev==false)
    {
        Thread.sleep(2000);
        driver.findElement(By.className("PSHYPERLINK")).click();

        Thread.sleep(2000);
        Alert a = driver.switchTo().alert();
        a.dismiss();

        Thread.sleep(10000);

        elem_prev = driver.findElements(By.id("TM_TL_DD_WRK_GET_DATA")).size()!=0;
    }

我建议您像这样从循环中找到元素:

WebElement element1 = driver.findElements(By.id("TM_TL_DD_WRK_GET_DATA"));
WebElement element2 = driver.findElement(By.className("PSHYPERLINK"));

while(element1==false){
    Thread.sleep(2000);
    element2.click();

    Thread.sleep(2000);
    Alert a = driver.switchTo().alert();
    a.dismiss();

    Thread.sleep(10000);

    element1.size()!=0;
}

然后尝试SystemOutPrintln(element1); 和/或SystemOutPrintln(element2); 在开始循环之前,请确保它确实找到了元素。

如果它不显示元素,则问题不在于循环,而在于您尝试查找元素的方式。

这将是重要的信息,因为您随后可以尝试以其他方式查找元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM