无法在独立浏览器中找到元素
本文关键字:元素 浏览器 独立 | 更新日期: 2023-09-27 18:10:12
我尝试了许多不同的格式,无法找到我需要使用xpath单击的链接。请帮助我学习xpath的魔力…
IWebElement TCE = driver.FindElement(By.XPath("//div[*/text()='Recently Visited']/child::a[@title='Time Clock Entry']"));
TCE.Click();
网页中链接的代码如下…
<div id="RecentlyVisitedWidget" class="recentlyVisitedWidget">
<h2 id="ctl00_12_12_RecentlyVisitedLabel">Recently Visited</h2>
<ul class="recentlyVisitedLinks">
<li>
<span id="ctl00_12_12_Repeater1_ctl00_link">
<a title="Time Clock Entry" onclick="recentlyVisitedSelect('pages/VIEW/UTMEntry.aspx?USParams=PK=ESS!MenuID=2147!PageRerId=2147!ParentRerId=72','72','2147','2147', false, false, 'Time Clock Entry', true)" href="#"> Time Clock Entry</a>
</span>
</li>
</ul>
</div>
我可以使用下面的代码在一个webBrowser控件在一个表单中完成这一点。
HtmlElement link = (from HtmlElement elem in webBrowser1.Document.GetElementsByTagName("a")
where elem.InnerHtml == "Time Clock Entry"
select elem).ElementAt(0);
link.InvokeMember("Click");
当我试图在IE或Firefox等独立浏览器中这样做时,我无法找到此链接。我尝试通过CssSelector, linkText, Partial linkText, link, XPath和Id进行搜索,所有这些都返回一条消息,告诉我无法找到该元素。
关于为什么我能够在webBrowser控件中找到此元素而不是在浏览器中找到此元素的任何想法?
您的XPath应该是这样的
//div[@id='RecentlyVisitedWidget']//a[@title='Time Clock Entry']
或
//div[h2[text()='Recently Visited']]//a[@title='Time Clock Entry']
一定是XPath吗?
driver.findElement(By.cssSelector("ul.recentlyVisitedLinks a[title='Time Clock Entry']")).click();
我会尽量避免使用xpath,因为它们更容易出错,而且速度更慢。