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

相关问题