![](/img/trans.png)
[英]Program works in Eclipse but when I export to runnable JAR it doesnt. FileNotFoundException
[英]code, sometimes works some times doesnt. different error messages
我有以下問題,執行登錄后,系統將加載主頁面,大約需要5秒鍾,因此在此之后,腳本應鍵入3個字段並執行一個選項卡以獲取更多信息,但事實是有時工作,有時不工作,只有5個機會,只有一次工作,我不知道是否是時候獲取所有字段或類似的東西,使用IE 9導致該應用程序僅在IE上工作
這是代碼:
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中...
感謝您的反饋意見!
這聽起來像是時序問題。 模擬用戶的處理速度快於頁面准備就緒的速度。 根據頁面加載的時間,會出現不同的問題。
解決方案是在觸發DOM更改的步驟之后添加一個等待,而不是影響您的下一步,但不會導致WebDriver在返回之前等待。 Google的“ webdriver等待元素”獲得了許多實現方法。
我也遇到過類似的問題,但是我嘗試用Css_Selectors和X路徑而不是id來查找元素,這對我來說很有效
此處的關鍵是在每個操作(例如,發送鍵等)之后至少添加1秒鍾的隱式等待。這將使'driver.findElement'有足夠的時間查找元素。 盡管我建議將此代碼保留在testBase或可重用的方法中。
driver.manage()。timeouts()。implicitlyWait(1,TimeUnit.SECONDS);
這將有助於使您的網絡測試不那么片刻。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.