javascript - 我怎样才能获得这个链接元素?始终显示 "Unable to find element with link text == Search"

标签 javascript c#

我正在用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/

相关文章:

javascript - 前 100 个素数 javascript,为什么在素数数组之后未定义?

c# - 创建 HTML anchor 以编程方式运行 C# 函数

c# - Linq 将 2 个列表合并为一个

c# - 有没有办法让 Int 变量等于(==)数组中存储的所有数字?

javascript - 防止浏览器滚动到 :target

javascript - 在不使用 arguments.callee 的情况下递归调用匿名函数

javascript - knockout ,嵌套foreach

javascript - d3悬停在图例上,如何确定id

c# - ICollectionView 的过滤问题

c# - 使用 powershell 脚本通过 c# 重新启动应用程序池