Selenium WebDriver (Java API) を使用して、動的に生成された要素をクリックする必要があります。この要素が WebDriverWait で表示されるのを待ってからクリックします。このクリックは成功しますが、次に別の静的要素をクリックすると、テスト全体がフリーズします。コードは次のとおりです。
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()
、何らかの理由で発生するはずのないページのリロードを無限に待機しているようです。(アイテムを選択した後にリストが消えるのは、AJAX リクエストを行わない JavaScript によって行われます。)
click()
ブロッキングについて私が理解できない何かがあると思います。ページがロードされる場合にのみブロックを試みるとjavadocに記載されています。それにもかかわらず、ここで何らかの理由でブロックを取得します。
前にスレッドスリープを挿入するとprojectLink.click()
、テストは正常に機能します。で無限ブロックを取得するという仮説と一致しclick()
ます。
前もって感謝します。