代码,有时会工作一段时间。不同的错误消息

时间:2015-10-05 15:42:39

标签: java internet-explorer webdriver webtest

我有以下问题,在执行登录后,系统加载主页面,就像5秒钟那样,所以在那之后,脚本应该键入3个字段并执行选项卡以获取更多信息,但是事情是,有时是工作,有时没有,在5个机会,只有一个工作,我不知道是否有关于获得所有字段或类似的东西的时间,使用IE 9导致该应用程序仅适用于IE < / p>

这是代码: `

System.setProperty("webdriver.ie.driver","C:\\Apps\\eclipse\\IEDriverServer.ex;
WebDriver driver = new InternetExplorerDriver();    
driver.get("http://15.192.41.95/Cabina/asp/Login.asp");
WebElement text1 = driver.findElement(By.id("text1"));
     text1.sendKeys("xxxx");
WebElement password1 = driver.findElement(By.id("password1"));
     password1.sendKeys("xxxx");    
WebElement aceptar = driver.findElement(By.id("ok1"));
     aceptar.click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);    
driver.switchTo().frame(driver.findElement(By.name("menu")));
WebElement txtNumPolSol = driver.findElement (By.id("txtNumPolSol"));
    txtNumPolSol.sendKeys("877885");
WebElement Text8 = driver.findElement(By.name("txtNumofic"));
    Text8.sendKeys("228");          
WebElement txtCveInc = driver.findElement(By.name("txtCveInc"));
    txtCveInc.sendKeys("1");
WebElement clave = driver.findElement(By.id("txtCveInc"));
    clave.sendKeys(Keys.TAB);
driver.switchTo().frame(driver.findElement(By.name("dest")));
WebElement txtNomrepo = driver.findElement(By.id("txtNomrepo"));
    txtNomrepo.sendKeys("Jorge Villarreal");
driver.findElement(By.id("txtRelacion")).sendKeys("Conductor");
WebElement txtTelrepo = driver.findElement(By.id("txtTelrepo"));
    txtTelrepo.sendKeys("83029090");`

这里有我遇到的不同问题:

1)无法找到名称为== txtOficina

的元素

2)元素不再有效

3)无法找到id为== txtCveInc的元素(该字段在那里)

4)找不到名称== txtCveInc的元素(字段在那里)

系统解决问题的步骤是:

1)登录(到目前为止一直很好) 2)系统加载主页面(页面有框架并在5秒内获取所有字段......) 3)txtNumPolSol,txtNumofic和txtCveInc上的脚本类型(大多数问题都在最后两个字段中) 4)脚本执行选项卡 5)系统加载有关记录的一些信息,脚本继续... 注意:几乎所有问题都发生在第3步......

感谢您的反馈!

3 个答案:

答案 0 :(得分:0)

这听起来像是时间问题。模拟用户的运行速度比页面准备好的速度快。根据页面加载的时间安排,会出现不同的问题。

解决方案是在触发DOM更改的步骤之后添加等待而不是影响下一步,但不会导致WebDriver在返回之前等待。 Google&#39; webdriver等待元素&#39;有很多方法可以做到。

答案 1 :(得分:0)

我也面临着类似的问题,但是我试图用Css_Selectors和X路径而不是id来查找元素,这对我很有用

答案 2 :(得分:-1)

这里的关键是在每个动作之后添加至少1秒的隐式等待,即发送密钥等。它将允许'driver.findElement'有足够的时间来找到该元素。虽然我建议将此代码保存在testBase或可重用的方法中。

driver.manage()。timeouts()。implicitlyWait(1,TimeUnit.SECONDS);

它有助于减少网络测试。