2016-07-27 4 views
1

で働いていない私は、この構造からテキストSampleを取得したい:は.textのセレンPhantomJSのC#

<td id="IDName">Sample</td> 

ので、私はこの試みた:

driver1.FindElement(By.Id("IDName")).Text; 

を、それは常にnullを返します。

なぜ機能しないのですか?

+0

を見て、それならば、フレームの下のHTML DOM –

答えて

3

あなたは要素を検索しようとしているとき、それはそれはテキストなしでDOM上に存在します.Textは、あなたのケースで動作していない理由を、可能かもしれないと言うのは難しいです、ですから、要素は以下のように存在するようになるまで待たなければWebDriverWaitべき: -

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("IDName"))); 
element.Text; 

それとも、それはあなたのHTMLの問題を設計しています可能かもしれない、あなたは以下のように.GetAttribute("innerHTML")を使用してテキストを取得することができます: -

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("IDName"))); 
element.GetAttribute("innerHTML"); 

それとも、あなたはを使用してテキストを取得することができます次のように: -

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("IDName"))); 
element.GetAttribute("textContent"); 

は、それが役立ちます... :)

+0

のHI願っています! WebDriverWaitの名前空間は何ですか? – jt25

+1

@AJB 'OpenQA.Selenium.Support.UI'、https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_WebDriverWait.htmをご覧ください。 –

+1

ありがとうございました! – jt25