使用C#加载页面后,Selenium-Webdriver无法在网页中找到元素

时间:2017-07-20 16:37:05

标签: c# selenium automation

我正在尝试使用Selenium Webdriver和C#自动化Web应用程序。目前我遇到了一个简单的问题。导航到特定页面后,我尝试单击链接文本为"管理组"的链接。但是,当我执行测试时,它无法在网页中找到该元素。

driver.FindElement(By.LinkText("Manage groups"));

我也尝试过使用绝对Xpath:

driver.FindElement(By.XPath("html/body/div[1]/div[1]/div[2]/div[2]/article/li[2]/a"));

在两种情况下,测试导航到页面然后失败并显示错误:

  

无法找到元素

2 个答案:

答案 0 :(得分:1)

问题可能是由于“管理群组”中的一个小错误造成的。文本(例如,可能有一个附加的空格)。

  1. 您能否至少提供html的一小部分内容(您可以通过右键点击管理群组'链接并选择'检查元素'选项来获取它)

  2. 如果没有 - 试试这些:

  3. By.XPath("//a[@contains(., 'Manage groups')]")

    By.XPath("//a[@contains(., 'manage groups')]")

    By.XPath("//a[@value='Manage groups')]")

    By.partialLinkText("Manage groups")

答案 1 :(得分:0)

它应该适用于:)

IWebElement ClickNext = driver.FindElement(By.XPath("//a[.='Manage groups']"));
// We get the link to click on
ClickNext.Click();

修改:尝试使用li代替a

IWebElement ClickNext = driver.FindElement(By.XPath("//li[.='Manage groups']"));
// We get the link to click on
ClickNext.Click();