カスケードドロップダウンを自動化するときに問題が発生します。機能は次のとおりです。ドロップダウンリストをクリックして1つの値を選択すると、親ドロップダウンで選択した値に従って別のドロップダウンが開きます。
ここでスクリーンショットをご覧ください:こちらをクリック
これが私のコードです:
Utility.SelectDropdown(driver, "//div[3]/div/div/select", "Test 1");
Utility.SelectDropdown(driver, "//div[2]/div/div/div[3]/div/div/select", "Test 2");
Utility.SelectDropdown(driver, "//div[3]/div/div/div[3]/div/div/select", "Test 3");
ユーティリティクラス:
public static void SelectDropdown(WebDriver driver,String xpath,String value){
WebElement ele= driver.findElement(By.xpath(xpath));
Select dropdown=new Select(ele);
dropdown.selectByVisibleText(value);
待機してタブアウトしてこれを試しましたが、機能しませんでした。最初のドロップダウンで値を選択していますが、子ドロップダウンをロードできません。したがって、次のようなエラーメッセージが表示されます。
" Cannot locate element with text: Test 2." System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111'
ドロップダウンのHTMLは次のとおりです。ここをクリック
このクエリの提案をいただければ幸いです。
ありがとうございました。
上記の問題は、キー機能の助けを借りて解決されました。
WebElement element8 = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("manPosDropD1_xpath"))));
element8.click();
element8.sendKeys(Keys.ARROW_DOWN);
element8.sendKeys(Keys.ENTER);
ありがとうございました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加