C# 页面加载,但找不到该项

C# 页面加载,但找不到该项,c#,selenium,selenium-webdriver,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.FindEle

我测试了一些网站。只需尝试将一些文本放入输入字段(靠近站点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:无法在c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs中的OpenQA.Selenium.NoSuchElementException中找到元素:{“方法\”:“名称\”,“选择器\”:“输入URL\”}\r\n


实际上,您的
inputurl
来自
IWebElement url\u parse=driver.FindElement(按.TagName(“inputurl”)
错误,因为html源中没有
inputurl
标记

我能建议什么

尝试使用此选择器而不是您的选择器

IWebElement url_parse = driver.findElement(By.cssSelector("div.mfid-v3 input"));
我希望这就是你想要的信息

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

http://http://test.com
所以别忘了
url_parse.clear()


告诉我发生了什么事=)

更改
IWebElement url\u parse=driver.FindElement(按.TagName(“inputurl”)
IWebElement url\u parse=driver.FindElement(By.Name(“inputurl”)

更新

刚刚注意到元素在iframe中

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

driver.SwitchTo().Frame("c-analyzer"); #and then
IWebElement url_parse = driver.FindElement(By.Name("inputurl"));

它无法定位元素,就像错误消息所说的那样。你还希望我们说些什么?如何做,这段代码是否有效?。毕竟,这个元素100%存在于HTML代码中。您的变体也不起作用。IWebElement url_parse=driver.FindElement(由.CssSelector(“div.mfid-v3输入”);抛出错误:OpenQA.Selenium.NoSuchElementException:无法定位元素:{\'method\':\'css selector\',\'selector\':\'div.mfid-v3 input\'\r\n\n@JonMaximys好的,您是否尝试使用
等待
?查看No.(By.Name(“inputurl”))引发相同的错误:OpenQA.Selenium.NoTouchElementException:无法在OpenQA.Selenium.Remote.RemoteWebDriver.UnpackantRowner(响应错误响应)中找到元素:{“方法”:“名称”:“选择器”:“inputurl\”}\r\n在c:\\Projects\\WebDriver\\trunk\\dotnet\\src\\WebDriver\\Remote\\RemoteWebDriver.cs中进行了编辑。有一个iframe,你需要切换到它