我的代码如下:
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
执行相同的