2013-09-05 4 views
0

driver.getTitle() не возвращает название страницы. Он возвращает null. У меня есть ниже структуру HTML на веб-странице:Selenium driver.getTitle() не работает

<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.... 

Может кто-нибудь объяснить, Что здесь проблема .. Заранее спасибо

ответ

1

Затем вы можете поставить четкие ожидания, как показано ниже:

 

    void waitForLoad(WebDriver driver) { 
     ExpectedCondition pageLoads = new 
      ExpectedCondition() { 
       public Boolean apply(WebDriver driver) { 
        return (Boolean)((JavascriptExecutor)driver).executeScript("return document.readyState").equals("complete"); 
       } 
      }; 
     WebDriverWait wait = new WebDriverWait(driver, 30); 
     wait.until(pageLoads); 
    } 

И тогда вы можете выполнить ниже действия:

 

    driver.getTitle() 

+0

Я думаю, что ваш WebApplication не открывается, когда driver.getTitle() выполнили. поэтому вам нужно поставить явные или неявные ожидания, чтобы дождаться загрузки вашей страницы. – Paras

+0

Парас, я использую implicitelyWait(), хотя его не возвращают. –

+0

Ваша веб-страница загружена успешно или она была в процессе? – Paras

1

Я думаю, что это может быть поздно для вас бу Я просто помещаю его так, чтобы другие могли получить помощь. первого хромой способом является то, что вы можете просто добавить

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

Вы можете дать время, что каждое вы хотите, что он будет делать это только замедлит время выполнения в течение 2 секунд (в данном случае)

второй вы можете использовать

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

Это будет работать только если ваш HTML и JS возвращает текст, полный теперь вы получите пе w, и вы можете использовать его для проверки.

добавить еще один код к теме:

WebDriverWait wait = new WebDriverWait(driver, 30); 
     try{ 
      wait.until(ExpectedConditions.titleIs(eTitle)); 
      Reporter.log("PASS: Title is matching.", true); 
     } 
+0

Да. Это довольно старый. Я решил долго. Спасибо, в любом случае. WebDriverWait - лучший способ всегда. –

Смежные вопросы