0

リンクまたは要素がクリックされてページが遷移する場合に、Robot Framework または Selenium Webdriver で問題が発生しています。ウィンドウがクリックを正常に処理したにもかかわらず、要求された要素/リンクをクリックしようとして失敗したかのように、スクリプトがハングして実行を停止します。Webdriver ウィンドウを手動で更新してページをリロードすると、スクリプトが開始され、そこから再開されます。

私が考えることができる唯一のことは、SeleniumまたはRobotがコマンドを実行してからブラウザーからのHTTP応答をリッスンできるようになるまでに遅延があり、 Seleniumがリッスンする準備が整う前にページがロードされることです. これはイントラネットで実行されているため、ページの読み込み時間はかなり高速です。SauceLabs VM で同じスクリプトを実行したときに問題が発生するのを見たことがありません。

私の理論が正しいと仮定すると、どうすればよいでしょうか? Selenium で遅延を設定しても、実行が遅くなるだけで、実際には問題には影響しません。

4

2 に答える 2

0

試す:

Set Selenium Implicit Wait  60
Set Browser Implicit Wait  60

数値 60 は、デフォルトでセレン/ブラウザーの両方を待機する秒数です。

于 2013-02-27T16:32:46.510 に答える
0

流暢な待機を試すことができます...

  public static WebElement fluentWait(final By locator, RemoteWebDriver rwd){
  Wait<WebDriver> wait = new FluentWait<WebDriver>(rwd)
          .withTimeout(30, TimeUnit.SECONDS)
          .pollingEvery(2, TimeUnit.SECONDS)
          .ignoring(NoSuchElementException.class);

  WebElement foo = wait.until(
          new Function<WebDriver, WebElement>() {
              public WebElement apply(WebDriver driver) {
                  return driver.findElement(locator);
              }
          }
    );
    return  foo;              
    };

これは 2 秒ごとにポーリングし、最大 30 秒待機します。

テストでは、次のような要素を待ちます fluentWait(By.className("home"), driver); テキストなどをクリックまたは確認する前に

于 2013-01-18T11:54:41.260 に答える