c#中的Selenium webdriver - 无法点击框架上的超链接

Selenium webdriver in c#-Unable click on hyperlink on frame

我正在使用 c# 中的 selenium Webdriver 进行自动化。所以在我的应用程序中,单击一个 link 后,主浏览器顶部会打开一个框架 window 所以我能够阅读该框架上的文本,简而言之,我可以切换到该框架。 有许多 hyperlink 的框架,我必须单击名为“Add/Change Admin Message”的 hyperlink。但是我使用下面的代码点击 link 但它在 IE 浏览器中向下滚动框架所以点击动作不是 performed.But 它在 chrome 浏览器中工作正常。

Driver.FindElement(By.XPath("//a[contains(text(),'"+"Add/Change Admin Message"+"')]")).Click();

我尝试过 xpath,cssselector,classname,Id,linktext,partial link text 但没有成功。 下面是那个 link 的 DOM,请帮帮我.. Add/Change管理员留言

首先,您需要切换到link所在的框架

Driver.SwitchTo().Frame("frame name or id");

然后,您可以通过部分link文本:

定位link
Driver.FindElement(By.PartialLinkText("Add/Change Admin Message"));

对于 IE,这通常是您应该做的神奇事情,请尝试 通过 javascript 单击 link:

IWebElement link = Driver.FindElement(By.PartialLinkText("Add/Change Admin Message"));

IJavaScriptExecutor js = Driver as IJavaScriptExecutor;
js.ExecuteScript("arguments[0].click();", link);