簡體   English   中英

檢查表是否存在

[英]Check if a table exists or not

當我單擊鏈接時,它將打開一個頁面,該頁面將在下表中顯示。

page 1 : html/body/table[1]/tbody/tr/td[2]/div[3]/form/table[2]/tbody....

Page 2 : html/body/table[1]/tbody/tr/td[2]/div[3]/form/table/tbody.....

我想找出哪個表已加載並做出決定。 如果第一頁已加載,則轉到循環,而第二頁好像已加載,則不會轉到else循環。

if(driver.findElement(By.xpath(xpath of page 1)).isDisplayed()){
    System.out.println("is present");
}else {
    System.out.println("not");
}

我該如何處理?

您應該考慮您的測試想要達到的目標。 為什么不知道將要顯示哪個表? 您應該知道應該存在哪個表,並能夠在測試中做出相應的反應(否則測試失敗,對嗎?)。

我本來建議使用try / catch塊來查找元素,然后檢查它是否顯示(此方法將起作用),但是現在您的代碼站立的方式看起來好像找到元素就足以知道該元素了。表已顯示,因此兩步過程有些復雜。

您可以做這樣簡單的事情...

try
{
  driver.findElement(By.xpath(xpath of page 1));
  System.out.println("Page 1 is present");
}
catch (NoSuchElementException nsee)
{
  System.out.println("Page 2 is present");
}

但是,我真的建議您看一下為什么您不知道顯示哪個表並從那里去的原因。

isDisplayed將無濟於事,您可以將isElementPresent用於isDisplayed您將收到錯誤“找不到元素”

引用org.openqa.selenium.NoSuchElementException:無法找到元素

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM