2016-04-21 39 views
0

示例程序在網頁上與web元素有關的innerText是什麼?

http://www.qaautomation.net/?p=263

具有下面的代碼行:

return driver.findElement(By.tagName("body")).getText().contains("qaautomation.net"); 

了gettext()文檔(http://seleniumhq.github.io/selenium/docs/api/java/)使用術語 '的innerText'。什麼是innerText?

當我運行該程序並獲取源代碼的HTML生成的谷歌頁面,我找不到'qaautomation.net'的代碼。 Selenium如何從源代碼中獲取文本?

編輯

我現在發佈了一個與此查詢有關的新問題。

回答

2

由於我們專門討論selenium webdriver,所以並不像@Davide描述的那樣簡單。

您可以在getElementText paragraph of the webdriver specification中找到getText()背後的邏輯說明。文檔解釋中最重要的內容之一是只有可見元素文本將由getText()返回。

當我運行該程序,並得到所產生的谷歌網頁的HTML源文件,我不能在代碼

找到「qaautomation.net」可能是多個原因。一個非常常見的問題是「計時問題」 - 當頁面未完全加載時,您將獲得body的文本。推薦的解決方案是使用Explicit Wait(Java中的WebDriverWait)。

+0

當我寫「獲得源代碼生成的谷歌頁面的HTML'我的意思是我去打開的Firefox瀏覽器,並點擊工具/網頁開發/頁面源。這是在頁面完全加載到瀏覽器之後。另外,我的查詢中的代碼行返回true,所以程序必須在innerText中找到'qaautomation.net'。我很疑惑Selenium在哪裏找到'qaautomation.net',當我在html源代碼中找不到它時.. – Martin

2

InnerHTML是特定標籤的內容。

InnerText是特定標籤的文本內容。

如果變量p具有以下內容:

<p>Test <b>Bold</b></p> 

標籤P的innerHTML的是Test <b>Bold</b>

標籤P的的innerText是Test Bold