![](/img/trans.png)
[英]What can be used if I want to check if the element is present or not in 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.