【问题标题】:Page loads and the item is not found页面加载但未找到该项目
【发布时间】:2014-05-09 03:45:20
【问题描述】:

我测试了一些网站。只需尝试将一些文本放入输入字段(靠近站点 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(Response errorResponse)...

【问题讨论】:

  • 它无法定位元素,就像错误消息所说的那样。您还希望我们说什么?
  • 怎么办,这段代码有效吗?毕竟这个元素是100%存在于HTML代码中的。

标签: c# selenium selenium-webdriver


【解决方案1】:

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

【讨论】:

  • No.(By.Name("inputurl")) 抛出同样的错误:OpenQA.Selenium.NoSuchElementException: Unable to locate element: {\"method\":\"name\",\"选择器\":\"inputurl\"}\r\n 在 OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) 在 c:\\Projects\\WebDriver\\trunk\\dotnet\\src\\WebDriver\ \Remote\\RemoteWebDriver.cs
  • 进行了编辑。有一个 iframe,你需要切换到
【解决方案2】:

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

我有什么建议?

尝试使用此选择器代替您的选择器

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

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

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

http://http://test.com

所以别忘了url_parse.clear();

告诉我怎么了 =)

【讨论】:

  • 您的变体也不起作用。 IWebElement url_parse = driver.FindElement(By.CssSelector("div.mfid-v3 input"));抛出错误:OpenQA.Selenium.NoSuchElementException: Unable to locate element: {\"method\":\"css selector\",\"selector\":\"div.mfid-v3 input\"}\r\n
  • @JonMaximys 好的,您尝试使用wait 吗?看看here
猜你喜欢
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
相关资源
最近更新 更多