0

セレンに問題があります。

String contentid= "source" を使用して Web 上の要素にいくつかを送信し、ここに送信したいのは私のコードです

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

コンテンツが大きくなりすぎるまでは、うまく機能します。

viet.sendKeys(content);

Web が突然 404 エラー ページに変わります。そのため、エラーが発生しました

viet.submit();

私の質問は、このエラーを無視して以下のコードを続行する方法です。すべてのコンテンツを Web に送信する必要はありません。大きすぎる場合は無視できます...

スタックトレースは言った:

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
4

2 に答える 2

0

コンテンツの長さを確認してください。長さが制限を超えている場合は、フォームを送信しないでください。

if(content.length()<=acceptableLimit)
viet.sendKeys(content);
    viet.submit();
于 2012-10-24T10:06:21.710 に答える
0

考えられる理由: 操作後

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
于 2012-10-24T13:02:45.987 に答える