2014-01-17 4 views
0

я получил следующий код C# из Selenium IDE:Невозможно навигацию при помощи LinkText в Селен C#

driver.FindElement(By.LinkText("Sub Link 1")).Click(); 

Но, как это не работает, я изменил код ниже, чтобы ждать. Он все еще не работает.

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.LinkText("Main Link 1"))); 
if (element != null) 
{ 
    var innerElement = wait.Until(ExpectedConditions.ElementExists(By.PartialLinkText( 
     "Sub Link 1"))); 
} 

В чем может быть проблема?

Мой HTML:

<html> 
    <a href="#nav" title="Show navigation">Show navigation</a> 
    <a href="#" title="Hide navigation">Hide navigation</a> 
    <div id="navlogo"><a title="HOME" href="url"> 
     <span style="position:absolute;width:100%;height:100%;top:0;left: 0;"> 
     </span></a></div> 
    <ul class="clearfix"> 
     <li><a href="">MXLMain1</a> 
     <ul> 
     <li><a href="">ML1</a> 
     </li> 
     <li><a href="">ML2</a> 
     </li> 
     </ul> 
    </li> 
    <li><a href="">MXLMain2</a> 
    <ul> 
     <li><a href="">MK2</a> 
     </li> 
    </ul> 
    </li> 
    <li><a href="">Main Link 1</a> 
    <ul> 
     <li><a href="">Sub Link 1</a> 
     </li> 
     <li><a href="">Sub Link 2</a> 
     </li> 
    </ul> 
    </li> 
.......................... 
</html> 
+0

Я помню, у меня были некоторые проблемы с LinkText, он никогда не найти то, что мне нужно, поэтому каждый раз, когда я хочу, чтобы искать что-то с текстом, я использую XPath для того, // а [текст () = 'Sub Link 1'] –

+0

Вы пробовали By.PartialLinkText. Иногда пробелы вокруг текста не позволяют найти точный элемент. –

+0

«Не работает» означает * what *? Какие ошибки? – Arran

ответ

0

Как насчет использования XPath?

driver.FindElement(By.XPath("//a[.='Sub Link 1")).Click();