如何验证以新形式输入的值是否在编辑表单中正确反映

时间:2017-03-31 05:24:13

标签: selenium

我正在尝试自动化一个主要处理表单的网站。我已经以新的形式输入了值,我需要验证它是否以编辑形式正确反射回来。 在新形式中,我尝试过:

 WebElement FN = driver.findElement(By.id("ctl00_ctl41_g_1fc852c8_32cb_4220_80ee_2af21b671f9e_ff21_ctl00_ctl00_TextField"));
 FN.click();
 FN.sendKeys("abc");

在编辑表单代码中:

 if(FN.getAttribute("value").equals("abc"))
    System.out.println("First Name is matching with new form");
 else                                                        
    System.out.println("First Name is not matching with new form");

我收到错误

 Exception in thread "main" org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document(Session info: chrome=57.0.2987.110)

提前致谢。

2 个答案:

答案 0 :(得分:1)

您需要在编辑表单后重新初始化 FN Webelement,因为一旦您离开新表单,之前的 FN Webelement就会变得陈旧。因此,请尝试以下方法:

FN = driver.findElement(By.id("ctl00_ctl41_g_1fc852c8_32cb_4220_80ee_2af21b671f9e_ff21_ctl00_ctl00_TextField"));
if(FN.getAttribute("value").equals("abc"))
    System.out.println("First Name is matching with new form");
else                                                        
    System.out.println("First Name is not matching with new form");

如果您有任何疑问,请与我们联系。

答案 1 :(得分:0)

您可能会在 FN.sendKeys("abc"); 处遇到异常。在进入编辑模式之前单击元素时,元素也在变化。这就是你遇到这种例外的原因。

我建议,在点击 FN 元素后,重新设置textfield的定位器,并使用sendkeys()方法。

要了解此类异常,这可能会对您有所帮助:

http://darrellgrainger.blogspot.com/2012/06/staleelementexception.html