我正在用c#学习selenium,我尝试点击列表下的链接,但总是显示错误“无法找到带有链接文本的元素==搜索”,代码如下:
<div id="ctl00_subNavMain_upSubMenu">
<ul id="ctl00_subNavMain_subMenu">
<li class="btnHome selected">
<a href="javascript:__doPostBack('ctl00$subNavMain$subMenu','0')">Home</a>
</li>
<li class="btnNew">
<a href="javascript:__doPostBack('ctl00$subNavMain$subMenu','1')">New Observation</a>
</li>
<li class="btnTestPlatform">
<a href="javascript:__doPostBack('ctl00$subNavMain$subMenu','2')">Test Platforms</a>
</li>
<li class="btnSearch">
<a href="javascript:__doPostBack('ctl00$subNavMain$subMenu','3')">Search</a>
</li>
<li class="btnOTS">
<a href="javascript:__doPostBack('ctl00$subNavMain$subMenu','4')">Remedy OTS</a>
</li>
<li class="btnBug">
<a href="javascript:__doPostBack('ctl00$subNavMain$subMenu','5')">Bugzilla</a>
</li>
</ul>
</div>
我已经尝试过这个:
ReadOnlyCollection<IWebElement> links = driver.FindElements(By.XPath("//*[contains(text(),'Search')]"));
MessageBox.Show(links.Count.ToString());
foreach (IWebElement link in links)
{
if(link.TagName=="a")
{
//MessageBox.Show(link.Displayed.ToString());
link.Click();
}
}
但它显示错误“无法单击此元素”,我尝试使用“link.Displayed”,都是错误的,所以我该如何解决它,这对我来说是一个大问题,谢谢!
我已经尝试过这个:“MessageBox.Show(link.Enabled.ToString());”全部返回“true”
解决方案:“javascriptexecuter js= (javascriptexecuter)driver; js.executescript(“arguments[0].click()”,link);” 非常感谢大家。
最佳答案
您可以在查找元素中将其用作 xpath:
//*[包含(text(),'搜索')]
关于javascript - 我怎样才能获得这个链接元素?始终显示 "Unable to find element with link text == Search",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39268234/