如何使用c#点击Selenium中的超链接
本文关键字:超链接 Selenium 点击 何使用 | 更新日期: 2023-09-27 18:25:57
我刚刚开始研究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....;
..
}
请注意,在foreach循环上方的注释行中,单击操作效果良好。我是不是错过了推荐信?
为什么希望selenium.Click();
出现?从您提供的代码来看,您使用的似乎是WebDriver,而不是SeleniumRC或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();
我猜By
方法找不到您的TagName。请尝试By.LinkText("a")
:
links= driver.FindElements(By.LinkText("a")).ToList();
或者尝试其他By
方法(id、className…)
欧元:
List<IWebElement> links = new List<IWebElement>();
links.add(driver.FindElements(By.TagName("a")));
//driver.FindElement(By.LinkText("YouTube")).Click();
links.get(0).click();
你能试着在foreach循环中铸造到IWebELement的链接吗
foreach(IWebELelent link in links)
{
------
-----
}
driver.FindElement(By.Xpath("")).Click();
或
driver.FindElement(By.Xpath("")).SendKeys(Open.QA.Selenium.Keys.Enter);
任何一种方式都有可能