我从Selenium IDE获得了以下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 :(得分:0)
如何使用xpath?
driver.FindElement(By.XPath("//a[.='Sub Link 1")).Click();
答案 1 :(得分:0)
然后使用Actions类移动到元素并单击它。
public void MouseHover(By locator)
{
element = driver.FindElement(locator);
Actions action = new Actions(driver);
action.MoveToElement(element).Perform();
}
点击相同的步骤。
action.MoveToElement(element).Perform();
action.Click().Perform();