簡體   English   中英

找不到Java-Selenium WebElement錯誤

[英]Java-Selenium WebElement is not found error

我硒有問題。

我想將一些String content發送到ID =“ source”的Web上的某個元素,並將其提交給我,這是我的代碼

driver.get("http://hiriji.com/");
        WebElement viet = driver.findElement(By.id("source"));
        viet.sendKeys(content);
        viet.submit();

效果很好,直到內容太大為止。

viet.sendKeys(content);

網絡突然更改為404錯誤頁面。 所以它在出現錯誤

viet.submit();

我的問題是如何忽略此錯誤並繼續以下代碼。 我不需要將所有內容發送到網絡,如果太大,則可以忽略...

stacktrace說:

Exception in thread "main" org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up
Command duration or timeout: 392 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/stale_element_reference.html
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 21:09:54'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_31'
Driver info: driver.version: RemoteWebDriver
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:498)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:244)
    at org.openqa.selenium.remote.RemoteWebElement.submit(RemoteWebElement.java:81)
    at RecieveData.TranslateStatus.translateViToEn(TranslateStatus.java:22)
    at RecieveData.htmlParser.parseHtml(htmlParser.java:43)
    at RecieveData.AddressToHtml.parseHtmlStatus(AddressToHtml.java:105)
    at RecieveData.MainProcess.main(MainProcess.java:29)
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Element not found in the cache - perhaps the page has changed since it was looked up
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 21:09:54'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_31'
Driver info: driver.version: unknown

只需檢查內容的長度。如果長度超出限制,請勿提交表單。

if(content.length()<=acceptableLimit)
viet.sendKeys(content);
    viet.submit();

可能原因:手術后

driver.get("http://hiriji.com/");

您沒有獲得應該在頁面上加載的所有元素。 添加隱式等待driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS); 驗證我是否正確

driver.get("http://hiriji.com/");
driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS);
 WebElement viet = driver.findElement(By.id("source"));
        viet.clear();
        viet.sendKeys(content);
        viet.submit();//or as alternative try to click on 'submit' button

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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