2013-05-21 106 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