我需要点击此元素的帮助:
<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,
className
,Link
和PartialLinkText
。
答案 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();