2016-05-31 8 views
0

Ich muss zuerst das Element "Ready" suchen und dann überprüfen, ob es auf dem Bildschirm angezeigt wird. Bitte helfenIch bin nicht in der Lage, den Text "Ready" von unten Code mit Selenium webdriver

HTML-Code: -

<div class="sf-element sf-element-text-box sfpc-left" style="float: left;" title="Ready ">Ready </div>

Hier ist, was ich

ersten Versuch versucht: -

WebElement search = driver.findElement(By.cssSelector("span[title=\"Ready \"]")); 
if(search.isDisplayed()){ . I will proceed with other things here.... } 

zweiten Versuch: -

WebElement search = driver.findElement(By.xpath("//span[contains(text(),'Ready ')]")); 
if(search.isDisplayed()){. I will proceed with other things here.... } 

Aber das funktioniert nicht wirft Ausnahme .. kein Element gefunden. bitte helfen

+0

Nicht in der Lage den HTML-Code hinzufügen möchten, hier ist der Code

Ready
user3349459

+4

Ihr Text innerhalb eines div und Sie verwenden Spanne, die falsch ist .. versuchen, diese XPath „// div [contains (text(), 'Ready')] " –

+2

Gibt es einen Grund, warum Sie versuchen, das Element zu finden, bevor Sie überprüfen, ob es sichtbar ist? Gibt es irgendwelche Aktionen, die Sie an dem Element zwischen diesen beiden Schritten vornehmen? Wenn nicht, könnten Sie einen WebDriverWait und eine erwartete Bedingung verwenden, um beide Schritte gleichzeitig auszuführen. – RemcoW

Antwort

0

entfernt werden Sie sich für ein span-Element suchen:

By.cssSelector("span[title=\"Ready \"]") 

Aber Ihre HTML zeigt ein div-Element:

<div title="Ready ">Ready </div> 

ändern Locator:

By.cssSelector("div[title=\"Ready \"]") 
-1
//*[contains(concat(' ', @title, ' '), ' Ready ') and contains(text(), 'Ready')] 

versuchen, die oben XPath in driver.findElement(By.xpath("//*[contains(concat(' ', @title, ' '), ' Ready ') and contains(text(), 'Ready')]"))

auch von Räumen passen !!

bearbeiten: Das oben XPath funktioniert auch, wenn die Räume in Titel Attribute

+0

@ downvoter PLZ Kommentar ..! – theRoot

+1

Ihre Antwort ist zu kompliziert, wenn das einzige Problem mit seinem Code ist, dass er nach einer Spanne sucht, während sein Element ein div ist. Es ist völlig unnötig, diesen Platzhalter mit verketteten Xpath-Locator zu verwenden. – Mobrockers

0

C#

IWebElement test = driver.FindElement (By.CssSelector ("div [title = \" Ready \ "]")); Console.WriteLine (test.Text);

Demo:

 IWebDriver driver; 
     string url = "http://localhost:58807/Test1.html"; 
     var options = new InternetExplorerOptions(); 
     options.RequireWindowFocus = true; 
     options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
     options.IgnoreZoomLevel = true; 
     string path = Environment.CurrentDirectory; 
     driver = new InternetExplorerDriver(path, options); 
     TimeSpan span = TimeSpan.FromSeconds(60); 

     driver.Manage().Timeouts().ImplicitlyWait(span); 
     driver.Manage().Timeouts().SetPageLoadTimeout(span); 
     driver.Manage().Window.Maximize(); 
     driver.Navigate().GoToUrl(url); 

     IWebElement test = driver.FindElement(By.CssSelector("div[title=\"Ready \"]")); 
     Console.WriteLine(test.Text); 
Verwandte Themen