0

我测试了一些网站。只需尝试将一些文本放入输入字段(靠近站点 URL:)。我用硒。我的代码抛出异常。请告诉我为什么?

IWebDriver driver = new FirefoxDriver();
try
{
   driver.Navigate().GoToUrl("http://www.w-global.com/index.php/tools-gadgets/online-sitemap-generator");
   IWebElement url_parse = driver.FindElement(By.Name("inputurl"));
   url_parse.SendKeys("http://test.com");
}
catch (Exception ee)
{
   String s = ee.ToString();
}
finally
{
   driver.Quit();
}

错误:

OpenQA.Selenium.NoSuchElementException:无法在 OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError 中找到元素:{\"method\":\"name\",\"selector\":\"inputurl\"}\r\n (响应错误响应)在 c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs...

4

2 回答 2

2

更改IWebElement url_parse = driver.FindElement(By.TagName("inputurl"));IWebElement url_parse = driver.FindElement(By.Name("inputurl"));

更新

刚刚注意到该元素位于 iframe 内。

在尝试查找元素之前,您需要切换到它。

driver.SwitchTo().Frame("c-analyzer"); #and then
IWebElement url_parse = driver.FindElement(By.Name("inputurl"));
于 2013-05-21T19:27:49.113 回答
0

实际上,您的inputurlfromIWebElement url_parse = driver.FindElement(By.TagName("inputurl"));是错误的,因为 html 源代码中没有inputurl标签。

我能建议什么?

尝试使用这个选择器而不是你的

IWebElement url_parse = driver.findElement(By.cssSelector("div.mfid-v3 input"));

我希望这是您正在寻找的输入。

另外,在写入值之前清除它。因为您的代码将在输入中执行此操作:

http://http://test.com

所以不要忘记url_parse.clear();

告诉我怎么了 =)

于 2013-05-21T18:59:38.633 回答