页面加载和项目未找到

时间:2013-05-21 18:28:51

标签: c# selenium selenium-webdriver

我测试了一些网站。只是尝试将一些文本放入输入字段(站点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中找到元素:{\“method \”:\“name \”,\“selector \”:\“inputurl \”} \ r \ n。 C:\ Projects \ WebDriver \ trunk \ dotnet \ src \ WebDriver \ Remote \ RemoteWebDriver.cs中的RemoteWebDriver.UnpackAndThrowOnError(响应errorResponse)...

2 个答案:

答案 0 :(得分: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"));

答案 1 :(得分:0)

实际上,来自inputurl的{​​{1}}是错误的,因为html来源中没有IWebElement url_parse = driver.FindElement(By.TagName("inputurl"));标记。

我可以建议什么?

尝试使用此选择器而不是

inputurl

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

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

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

所以不要忘记http://http://test.com

告诉我发生了什么=)