簡體   English   中英

代碼,有時可以正常工作。 不同的錯誤信息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM