0

driver.getTitle() はページのタイトルを返しません。null を返します。Web ページに以下の html 構造があります。

<head>
  <!-- needed for translation of titles -->

  <!-- needed for gomez.jsp -->
  <script type="text/javascript" async="" src="https://ssl.google-analytics.com/ga.js"> </script><script type="text/javascript"> … </script><script src="https://B001E0.t.axf8.net/js/gtag5.js" type="text/javascript"></script>
  <title>
     Applications
  </title>
  so on....

誰かがここで何が問題なのか説明できますか..事前に感謝します

4

2 に答える 2

2

次に、以下のように明示的な待機を配置することができます。

    void waitForLoad(WebDriver ドライバー) {
        ExpectedCondition pageLoads = 新規
            予想条件() {
                public Boolean apply(WebDriver driver) {
                    return (Boolean)((JavascriptExecutor)driver).executeScript("return document.readyState").equals("complete");
                }
            };
        WebDriverWait 待機 = 新しい WebDriverWait(ドライバー、30);
        wait.until(pageLoads);
    }

そして、以下のアクションを実行できます。

    driver.getTitle()

于 2013-09-05T08:41:19.133 に答える
1

あなたには遅いかもしれないと思いますが、他の人が助けを得ることができるように置いているだけです. 1つ目の不自由な方法は、追加するだけです

Thread.sleep(2000);
//(2000 is the time in milliseconds) before the the 
driver.getTitle();

必要に応じて時間を指定できます。これにより、実行時間が 2 秒間遅くなります (この場合)。

2番目に使用できます

WebDriverWait wait = new WebD`enter code here`riverWait(driver, 10);
wait.until(ExpectedConditions.jsReturnsValue("complete"));
driver.getTitle();

HTML と JS が完全なテキストを返す場合にのみ機能し、新しいページのタイトルを取得して検証に使用できます。

スレッドにもう 1 つのコードを追加します。

WebDriverWait wait = new WebDriverWait(driver, 30);
        try{
            wait.until(ExpectedConditions.titleIs(eTitle));
            Reporter.log("PASS: Title is matching.", true);
        }
于 2017-04-06T11:13:04.427 に答える