如何使用c#单击Selenium中的超链接

Naj*_*ban 3 c# selenium webdriver hyperlink selenium-webdriver

我刚刚开始使用Selenium.我试图在网页上的链接上调用点击操作,但出于某种原因,selenium.click()事件甚至没有显示在intellisense上!在foreach循环中.下面是我想要做的部分代码.

    IWebDriver driver;
    driver = new InternetExplorerDriver();
    driver.Navigate().GoToUrl("http://www.google.com");
    List<IWebElement> links = new List<IWebElement>();
    links= driver.FindElements(By.TagName("a")).ToList();
    //driver.FindElement(By.LinkText("YouTube")).Click();
    foreach (var link in links)
    {
        OpenQA.Selenium....;
        ..
    }
Run Code Online (Sandbox Code Playgroud)

请注意,点击在foreach循环上方的注释行中正常工作.我错过了参考吗?

Yi *_*eng 7

为什么你期望selenium.Click();出现?从您提供的代码看起来,您使用的是WebDriver,而不是Selenium RC或WebDriverBackSelenium.你可能应该考虑使用类似的东西link.Click();.

这是我使用WebDriver做的,这对我来说很好.

IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://www.google.com");

// find directly, note it's not in the <a> but in <span>
// driver.FindElement(By.XPath("//span[text()='YouTube']")).Click();

// your logic with LINQ
IList<IWebElement> links = driver.FindElements(By.TagName("a"));
links.First(element => element.Text == "YouTube").Click();

// your logic with traditional foreach loop
foreach (var link in links) {
    if (link.Text == "YouTube") {
        link.Click();
        break;
    }
}

driver.Quit();
Run Code Online (Sandbox Code Playgroud)