找不到具有 id 的元素:仅在 IE 上执行时出现问题.适用于火狐浏览器



我的代码如下:

package ie;
import java.io.File;

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class ieproject{
 public static void main(String[] args) { 
  System.setProperty("webdriver.ie.driver", "D:\Selenium\IEDriverServer.exe");
  WebDriver driver = new InternetExplorerDriver();
  driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS );
  try
  {
  driver.get("http://demo.actitime.com");
  driver.findElement(By.id("username")).sendKeys("admin");
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
  driver.quit();
 }
}

在运行相同的内容时出现异常:

已启动 InternetExplorerDriver 服务器(64 位(2.43.0.0侦听端口 35578log4j:WARN 找不到记录器(org.apache.http.client.protocol.RequestAddCookies(的追加器。log4j:警告 请正确初始化 log4j 系统。log4j:WARN 有关详细信息,请参阅/logging.apache.org/log4j/1.2/faq.html#noconfig。org.openqa.selenium.NoSuchElementException:找不到 id == 用户名的元素(警告:服务器未提供任何堆栈跟踪信息(命令持续时间或超时:15.22 秒有关此错误的文档,请访问:/seleniumhq.org/exceptions/no_such_element.html构建信息:版本:"2.43.0",修订版:"597b76b",时间:"2014-09-09 20:52:14"系统信息: 主机: 'AJITKUMAR-PC', ip: '192.168.1.5', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_20'驱动程序信息: org.openqa.selenium.ie.InternetExplorerDriverCapabilities [{browserAttachTimeout=0, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.usePerProcessProxy=false, ignoreZoomSetting=false, handlesAlerts=true, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitch=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=false,enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehavior=dismiss}]会话 ID: 892cecb0-ba03-48f6-a29e-7eb7c56da813 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method( at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source( at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source( at java.lang.reflect.Constructor.newInstance(未知来源( at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204( at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156( at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599( at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:352( at org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:393( at org.openqa.selenium.By$ById.findElement(By.java:214( at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:344( at ie.ieproject.main(ieproject.java:28(

我在IE11和Selenium上也有麻烦 - 有时Web驱动程序找不到元素,但在其他浏览器(chrome,Firefox(中都可以正常工作相同的测试。

我找到了这个解决方案:您需要创建(如果不存在(注册表项 - HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerMainFeatureControlFEATURE_BFCACHE并在其中DWORD名称为 iexplore.exe 的值,值数据为 0。

对于 x64 系统 - 对密钥HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftInternet ExplorerMainFeatureControlFEATURE_BFCACHE执行相同的

操作

最新更新