1

我試圖自動執行一個方案,其中的條件是我必須從下拉列表中選擇一個選項,然後在旁邊有另一個選項,我必須單擊下一個選項以啓用按鈕。我嘗試了代碼,但它僅點擊第一個選項,並將錯誤顯示爲陳舊元素引用:元素未附加到頁面文檔。請幫忙。如果不是很清楚,請告訴我。Selenium Webdriver - 單擊多個下拉列表時出現陳舊元素異常。 DOM dint更改

enter image description here

+0

給我們任何代碼。你如何選擇選項?此外,我不明白按鈕和旁邊的列表。什麼啓用了什麼? – Kirhgoph

+0

當你選擇'Self'時,只有你選擇'General',這實際上意味着HTML DOM被改變,這導致'StaleElementException' – DebanjanB

+0

代碼在哪裏? –

回答

0

這裏是回答你的問題:

當您選擇Insurance Test Client那麼只有你得到的選擇Product Insurance,基本上意味着HTML DOM得到改變,從而導致StaleElementException。爲了避免這種情況,一旦我們從第一個下拉列表中選擇,我們需要爲HTML DOM中的第二個下拉列表中的元素引入一些wait。然後我們將使用Select類來選擇一個選項。嘗試以下代碼塊:

//Select Channel 
Select oSelectChannel = new Select(driver.findElement(By.id("client"))); 
oSelectChannel.selectByVisibleText("Insurance Test Client"); 

WebDriverWait wait5 = new WebDriverWait(driver, 10); 
wait5.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_a_Category_item"))); 

//Select Category 
Select oSelectCategory = new Select(driver.findElement(By.xpath("//*[@id='category']"))); 
oSelectCategory.selectByVisibleText("Product Insurance"); 

讓我知道這個答案是否是您的問題。

+0

謝謝@DebanjanB。有效。我堅信使用等到條件。謝謝你的幫助。 – Parveen

相關問題