C# 页面加载,但找不到该项
我测试了一些网站。只需尝试将一些文本放入输入字段(靠近站点URL:)。我用硒。我的代码抛出异常。请告诉我为什么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
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,你需要切换到它