C# 硒工业自动化

C# 硒工业自动化,c#,internet-explorer,selenium,C#,Internet Explorer,Selenium,我是C#和自动化的初学者。我想尝试使用Selenium和NUnit实现IE自动化。我可以在IE上吃午饭,然后导航到google.com。但是由于某种原因,程序找不到元素ID。因此,我无法向字段“发送密钥”。我的另一个问题是如何提交没有ID或名称的表单 代码如下: using System.Collections.Generic; using System.Linq; using System.Text; using OpenQA.Selenium.IE; using OpenQA.Seleniu

我是C#和自动化的初学者。我想尝试使用Selenium和NUnit实现IE自动化。我可以在IE上吃午饭,然后导航到google.com。但是由于某种原因,程序找不到元素ID。因此,我无法向字段“发送密钥”。我的另一个问题是如何提交没有ID或名称的表单

代码如下:

using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium;
using NUnit.Framework;
using OpenQA.Selenium.Internal;

namespace ClassLibrary1
{
   public class Class1
   {
      public IWebDriver driver;
      public string baseUrl;

      [SetUp]
      public void Setup() 
      {  
         baseUrl ="https://www.google.com";
         driver = new InternetExplorerDriver();
      }
      [Test]
      public void TestCase1() 
      {
         driver.Navigate().GoToUrl(baseUrl);
         System.Threading.Thread.Sleep(500);
         driver.FindElement(By.Id("gbqfq")).SendKeys("WhatIsMyIP");
         System.Threading.Thread.Sleep(500);
         driver.FindElement(By.Id("gbqfba")).Click();
      }
      [TearDown]
      public void TearDown() { }

   }
}

我以前在谷歌搜索中遇到过这个问题。发生的事情是,当您的脚本发送键以获取textbox时,google的“智能搜索”功能出现,元素消失

试试这个,这个应该有用

[Test]
public void TestCase1() 
{
    driver.Navigate().GoToUrl(baseUrl);
    driver.FindElement(By.Name("q")).SendKeys("WhatIsMyIP");
    driver.FindElement(By.Name("btnG")).Click();
}

自己观察一下。执行搜索并查看DOM。

您使用的是什么版本的IE?使用默认的IE11您是否使用内置的IE开发工具直接从页面标记中提取这些ID?老实说,使用Selenium和IE11不会有太多运气。它不支持它。虽然我不确定这是否是您出现问题的真正原因,但值得注意的是,Selenium根本不支持IE11。当你降级到IE10时,情况和问题会改变吗?我目前正在尝试IE10,但仍然一样,我在浏览器中找不到元素。另外,让那些明确的等待消失吧!:|仍然不工作,这是我得到的ClassLibrary1.Class1.TestCase1:OpenQA.Selenium.NoSuchWindowException:无法在closed上找到元素window@Light_User-看看例外情况;您确定IE已打开并具有焦点吗?它正在打开并导航到URL,但在查找元素时失败。您试图使用什么id查找元素<代码>按.Name(“q”)还是您最初拥有的?