我需要使用Selenium WebDriver(Java API)單擊動態生成的元素。 我在等待這個元素與WebDriverWait一起出現,然後點擊它。此點擊成功,但下面的點擊不同的靜態元素會凍結整個測試。下面是代碼:Selenium WebDriver。在等待元素單擊()凍結測試
webDriver.get(alfrescoURL + "/share/page/create-document");
WebDriverWait wait = new WebDriverWait(webDriver, 10);
WebElement documentTypeList = webDriver.findElement(By.id("template_x002e_create-document_x002e_create-document_x0023_default_documenttype-selected-form-button-button"));
documentTypeList.click();
WebElement listItem = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.id("yui-gen100")));
listItem.click();
// Choosing to create in new project
WebElement projectLink = webDriver.findElement(By.id("template_x002e_create-document_x002e_create-document_x0023_default_projecttype-entry1"));
projectLink.click();
documentTypeList.click()
打開一個下拉列表,選擇listItem.click()
一個項目,projectLink.click()
使組單選按鈕的選擇。測試在projectLink.click()
上靜靜地結冰。它看起來像這樣click()
無限期地等待頁面重新加載,而不是由於某種原因發生。 (選擇一個項目後消失的列表是由JavaScript做出的,不會產生任何AJAX請求。)
我認爲有一些關於click()
阻止我不明白。它說它是javadoc,它試圖阻止只有當它導致頁面加載。儘管如此,在這裏我出於某種原因得到一個塊
如果我在projectLink.click()
之前插入線程睡眠,則測試正常工作。它同意一個假設,我在click()
上獲得無限的阻擋。
在此先感謝。