2013-05-21 64 views
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: Unable to locate element: {\"method\":\"name\",\"selector\":\"inputurl\"}\r\n in OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs...

+0

无法找到元素,就像错误消息所述。你还指望我们说什么? – Servy

+0

该代码如何工作?毕竟,这个元素是100%存在于HTML代码中的。 –

回答

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")); 
+0

号(By.Name(“inputurl”))抛出相同的错误:OpenQA.Selenium.NoSuchElementException:无法定位元素:c:\\ OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)中的{\“method \”:\“name \”,\“selector \”:\“inputurl \”} \ r \ \\ WebDriver \\ trunk \\ dotnet \\ src \\ WebDriver \\ Remote \\ RemoteWebDriver.cs –

+0

进行了编辑。有一个iframe,你需要切换到 – Amey

+0

它的作品!谢谢! –

0

其实,你inputurlIWebElement url_parse = driver.FindElement(By.TagName("inputurl"));是错误的,因为没有inputurl标签在html源代码。

我能建议什么?

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

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

我希望这是你要找的那个输入。

此外,在写入值之前清楚呢?因为你的代码将做到这一点到输入:

http://http://test.com 

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

告诉我这是怎么回事=)

+0

您的变体也不起作用。 IWebElement url_parse = driver.FindElement(By.CssSelector(“div.mfid-v3 input”));抛出错误:OpenQA.Selenium.NoSuchElementException:无法找到元素:{\“method \”:\“css selector \”,\“selector \”:\“div.mfid-v3 input \”} \ r \ n –

+0

@JonMaximys好吧,你是否尝试使用“等待”?看看[这里](http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp) – e1che