2016-07-27 17 views
1

ich den Text Sample aus dieser Struktur erhalten möchten:.text arbeiten nicht in Selenium PhantomJS C#

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

so habe ich versucht, dies:

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

aber immer null zurück.

Gibt es einen Grund, warum funktioniert es nicht?

+0

aussehen, wenn es unter dem Rahmen im html dom –

Antwort

3

Es ist schwer zu sagen, warum .Text nicht in Ihrem Fall funktioniert, könnte möglich sein, wenn Sie Element gehen, um es zu finden auf der DOM ohne Text vorhanden ist, so sollten Sie WebDriverWait warten, bis Element, wie unten vorhanden ist: -

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

Oder könnte möglich sein, es Ausgaben Ihres HTML entwerfen, können Sie Text erhalten, indem .GetAttribute("innerHTML") wie unten verwenden: -

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

Oder dann können Sie Text erhalten, indemmitwie folgt: -

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

Hoffe, es hilft ... :)

+0

hallo! Wie lautet der Namespace für WebDriverWait? – jt25

+1

@AJB 'OpenQA.Selenium.Support.UI', werfen Sie einen Blick auf https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_WebDriverWait.htm. –

+1

Vielen Dank Kumpel! – jt25

Verwandte Themen