Selenium Webdriver

时间:2017-05-09 06:15:47

标签: selenium selenium-webdriver

作为Selenium的新学员,我正在尝试在Google搜索按钮的Google页面上确定一个基本元素。但是,即使元素在页面上完全可见,我也会得到NoSuchElementException

代码段:

String driverPath = "C:\\Users\\nchaudhary006\\IEDriverServer.exe";
System.setProperty("webdriver.ie.driver",driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
        capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
InternetExplorerDriver  driver = new InternetExplorerDriver(capabilities);

driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.get("https://google.com");
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

driver.findElement(By.name("btnK"));

解决方案:

  1. 元素直到可见选项
  2. 向下滚动,以便该页面可供查看
  3. 按xpath,id,name等标识元素
  4. 所有可能的等待组合。
  5. 我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

我不确定namebtnK完全引用哪个元素,但在https://google.comname有一个搜索字段为q < / p>

使用Selenium 3.4.0,IEDriverServer 3.4.0&amp; IE 10.x(及以上)以下代码将放置&#34; Neha Chaudhary&#34;在搜索字段中。

关于解决方案的几句话:

  1. 在开始时设置ImplicitlyWait,它在整个执行过程中仍然有效。所以你不必再次提及&amp;试。
  2. 您必须使用InternetExplorerDriver界面,而不是WebDriver实施。
  3. 搜索元素driver.findElement(By.name("btnK"));时,请将其存储为WebElement以供将来使用,或者按click()sendKeys("Neha Chaudhary")
  4. 执行某些操作
  5. 以下是工作代码段:

    String driverPath = "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe";
    System.setProperty("webdriver.ie.driver",driverPath);
    DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
    capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
    WebDriver  driver = new InternetExplorerDriver(capabilities);
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("https://google.com");
    driver.findElement(By.name("q")).sendKeys("Neha Chaudhary");
    
  6. 如果这回答你的问题,请告诉我。