簡體   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