在我的應用程序中,我有一個顯示在屏幕上的記錄元素。所以在第一頁上,它會說「顯示2100的1-10」。這是該元素的CSS,它適用於所有瀏覽器。Webdriver - 等待在Firefox中不工作
span.GridPagingInfo
在我的應用程序,這是一個iframe,我需要改變網頁,等待頁面,然後再繼續加載。我之前提到的元素是頁面上的最後一個元素,所以我正在使用它來進行等待。由於它的底部,如果它顯示,那麼我需要繼續我的測試的信息加載。
當我更改頁面時,該元素的文本會發生變化。所以如果我去第二頁,它會說「顯示2100的11-20」。在繼續我的測試之前,我正在等待文本改變。下面是我使用
//verify text of the element
String actualText = driver.findElement(By.cssSelector("span.GridPagingInfo")).getText();
Assert.assertEquals(actualtext, "displaying 1-10 of 2100");
//Go to next page by clicking the Next button
driver.findElement(By.cssSelector("th.GridPaging button.ViewMore")).click();
//wait for text of the element to change
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.textToBePresentInElementLocated(By.cssSelector("span.GridPagingInfo"), "displaying 11-20 of 2100"));
代碼我也試過
wait.until(ExpectedConditions.invisibilityOfElementWithText(By.cssSelector("span.GridPagingInfo"), "displaying 1-10 of 2100"));
當我嘗試這一點,它的工作原理除了火狐瀏覽器的每一個。當我在Firefox中運行我的測試時,測試將等待一段時間,並顯示錯誤,表示無法找到文本。當我觀看測試時,應用程序進入下一頁,元素在那裏,我想要的文本在那裏,但Selenium說它找不到它。我嘗試回滾到以前的Firefox版本,但這沒有幫助。
- 版Firefox - 33
- IE版本 - 11
- IE驅動器 - 2.44
- Chrome版本 - 39
- 鉻驅動器 - 2.11
- Selenium服務器 - 2.44.0.jar
你的代碼應該可以工作。這是爲什麼它不是一個謎。儘管如此,請嘗試一件事。 「span標籤」必須位於「div」或「a」標籤下,實際上它是其父項。因此,制定代碼以便從父項中檢索innerHTML /文本,然後檢查文本**「顯示1-10的2100」**的隱藏性。 – Subh 2014-11-25 17:00:01
爲什麼這個問題有一個downvote。如果您在沒有任何解釋的情況下只是低估了一個問題,那麼提問的人就不知道要解決什麼問題。 – TestRaptor 2014-12-02 16:19:16