3 回答

TA貢獻1794條經(jīng)驗 獲得超8個贊
切換到 iframe 后,我已經(jīng)修復(fù)了一些 Thread.sleep 的問題。不知道為什么切換到 iframe 后和查找元素之前的顯式等待失敗,我將超時設(shè)置為 15 秒,并在每個元素之前構(gòu)建顯式等待。顯然框架內(nèi)的元素突然沒有足夠的時間來完全加載......
public static void switchToIFramesOfSearchPage() {
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(GENERAL_IFRAME_CSS_LOCATOR_VALUE)));
driver.switchTo().frame(SEARCH_PAGE_IFRAME1_ID_LOCATOR_VALUE);
driver.switchTo().frame(SEARCH_PAGE_IFRAME2_ID_LOCATOR_VALUE);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void switchToIFrameOfToolbar() {
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(GENERAL_IFRAME_CSS_LOCATOR_VALUE)));
driver.switchTo().frame(TOOLBAR_IFRAME_ID_LOCATOR_VALUE);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void switchToIframeOfActivitiesPane(){
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(GENERAL_IFRAME_CSS_LOCATOR_VALUE)));
driver.switchTo().frame(ACTIVITIES_PANE_IFRAME_ID_LOCATOR_VALUE);
try {
Thread.sleep(750);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void switchToIFrameOfHistoryPane() {
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(GENERAL_IFRAME_CSS_LOCATOR_VALUE)));
driver.switchTo().frame(HISTORY_PANE_IFRAME_ID_LOCATOR_VALUE);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void switchToIFrameOfImportantView(){
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(GENERAL_IFRAME_CSS_LOCATOR_VALUE)));
driver.switchTo().frame(IMPORTANT_VIEW_IFRAME_ID_LOCATOR_VALUE);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void switchToIFrameOfAccountView(){
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(GENERAL_IFRAME_CSS_LOCATOR_VALUE)));
driver.switchTo().frame(ACCOUNT_VIEW_IFRAME_ID_LOCATOR_VALUE);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

TA貢獻1784條經(jīng)驗 獲得超9個贊
聽起來您的網(wǎng)站已更改。在您通常測試的網(wǎng)站上用 Chrome 中的 F12 檢查 ID,并確保它們?nèi)匀幌嗤?/p>
或者;?您可能會遇到典型的“我的應(yīng)用程序整個周末都在運行,但現(xiàn)在周一早上速度很慢”延遲。
根據(jù)大約一半的錯誤,我唯一的另一個猜測是您不小心引用了較舊的 WebDriver,而不是使用您認為正在使用的 WebDriver。
添加回答
舉報