页面加载,但找不到项目

本文关键字:找不到 项目 加载 | 更新日期: 2023-09-27 18:14:54

我测试了一些站点。只需尝试将一些文本放入输入字段(靠近网站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中找不到元素:{''"method''":''"name''",''"selector''":"inputurl''"}''r''n…

页面加载,但找不到项目

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

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

我能提出什么建议?

试着用这个选择器代替你的

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

我希望这就是你想要的投入。

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

http://http://test.com

所以别忘了url_parse.clear();

告诉我发生了什么事=(