我需要使用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()
上获得无限的阻挡。
在此先感谢。