无法点击selenium中的href元素c#

时间:2017-04-22 12:07:59

标签: c# selenium selenium-webdriver selenium-chromedriver selenium-ide

我需要点击此元素的帮助:

<li class="ui-state-default ui-corner-left ui-tabs-active ui-state-active" role="tab" tabindex="0" aria-controls="tabs-3" aria-labelledby="ui-id-3" aria-selected="true" aria-expanded="true">
    <a href="#tabs-3" class="ui-tabs-anchor" role="presentation" tabindex="-1" id="ui-id-3">Prevent propagation</a>
</li>
<!-- edit: missing a li element here? -->
    <a href="#tabs-3" class="ui-tabs-anchor" role="presentation" tabindex="-1" id="ui-id-3">Prevent propagation</a>
</li>

我已尝试Driver.FindElement().Click; Xpath, classNameLinkPartialLinkText

3 个答案:

答案 0 :(得分:0)

您尝试浏览的链接似乎是#tabs-3元素的相对链接。您可以尝试执行driver.Navigate().GoToUrl("URL/#tabs-3");

很难说为什么你的FindElement在没有看到确切的HTML以及你在By类中尝试使用的内容的情况下无法工作。

根据上面的代码,这应该有效:

var list = driver.FindElements(By.ClassName("ui-tabs-anchor"));

请注意,因为您有多个具有该类名的Web元素,所以您应该获取一个Web元素列表 - 访问任何列表元素以实际单击它(例如,列表[0] .Click())。

答案 1 :(得分:0)

尝试等待一段时间,直到DOM中的链接出现并变为可点击:

WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(20));
wait.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("Prevent propagation"))).Click();

答案 2 :(得分:0)

请尝试以下代码:

driver.FindElement(By.Xpath("//li[contains(., 'Prevent propagation')]")).click();