我正在尝试自动化一个主要处理表单的网站。我已经以新的形式输入了值,我需要验证它是否以编辑形式正确反射回来。 在新形式中,我尝试过:
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)
提前致谢。
答案 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