Selenium Remote Driver - 执行InternetExplorerDriver时发生NoSuchElementException异常 [英] Selenium Remote Driver - NoSuchElementException is occurred during implementation of InternetExplorerDriver

查看:356
本文介绍了Selenium Remote Driver - 执行InternetExplorerDriver时发生NoSuchElementException异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前使用selenium远程驱动程序。 Chrome的远程驱动程序执行正常,但无法使用IE。 IE浏览器启动后,NoSuchElementException显示



类似的问题我发现在下面url,我实现了所有指定的解决方案仍然不适合我。
在Selenium WebDriver中实现InternetExplorerDriver期间发生NoSuchElementException



使用以下功能启动Selenium网格 - 集线器:(机器A):

  java -jar selenium-server-standalone-2.44.0.jar -role hub 

使用:(机器B)启动Selenium网格节点:

  java -jar selenium-server-standalone-2.44.0.jar -role webdriver -hub http://xx.x.xx.xx:4444 / grid / register -port 5566 -browser browserName =internet explorer,version = 8.0,platform = WINDOWS -Dwebdriver.ie.driver = \\SeleniumDrivers\IEDriverServer.exe 

代码测试脚本(Eclipse)

  DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); 
capabilities.setBrowserName(internet explorer);
capabilities.setPlatform(Platform.WINDOWS);
capabilities.setCapability(ie.ensureCleanSession,true);
capabilities.setCapability(forceCreateProcessApi,true);
capabilities.setCapability(ignoreProtectedModeSettings,true);
System.setProperty(webdriver.ie.driver,\\\SeleniumDrivers\\\IEDriverServer.exe);
WebDriver驱动程序=新的RemoteWebDriver(新URL(http:// MachineBIPAddress:5566 / wd / hub),功能);

//示例代码。

  driver.get(www.google.com); 
driver.findElement(By.id(gbqfqw))。sendKeys(test);
driver.findElement(By.name(btnG))。click();

执行期间:

  IE浏览器在机器B中启动,然后显示错误org.openqa.selenium.NoSuchElementException:。 


log4j:WARN无法找到记录器(org.apache.http.client.protocol.RequestAddCookies)的appender。
log4j:WARN请正确初始化log4j系统。
log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig。
线程main中的异常org.openqa.selenium.NoSuchElementException:无法使用css selector == a [class * ='searchbtn']查找元素(警告:服务器未提供任何堆栈跟踪信息)
命令持续时间或超时时间:20.13秒
有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html
构建信息:version:'2.44.0'修改:'76d78cf',时间:'2014-10-23 20:02:37'
系统信息:主机:'xxxxxxx',ip:'xxx.xx.xx.xx',os.name:' Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.8.0_31'
驱动程序信息:org.openqa.selenium.ie.InternetExplorerDriver
功能[{browserAttachTimeout = 0,enablePersistentHover = true,ie.forceCreateProcessApi = false,ie.usePerProcessProxy = false,ignoreZoomSetting = false,handlesAlerts = true,version = 11,platform = WINDOWS,nativeEvents = true,ie.ensureCleanSession = true,elementScrollBehavior = 0,ie.browserCommandLineSwitches =, requireWindowFocus = false,browserName = internet explorer,initialBrowserUrl = http:// localhost:27297 /,takenScreenshot = true,javascriptEnabled = true,ignoreProtectedModeSettings = true,enableElementCacheCleanup = true,cssSelectorsEnabled = true,unexpectedAlertBehaviour = dismiss}
会话ID:445a8c44-fb7c-4f05-8b5a-f025787ffea5
命令持续时间或超时:23.98秒
有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html
Build info:version:'2.44.0',revision:'76d78cf',time:'2014-10-23 20:03:00'
系统信息:host:'xxxxxx',ip:'xx .x.xxx.xx',os.name:'Windows Server 2008 R2',os.arch:'amd64',os.version:'6.1',java.version:'1.8.0_31'
驱动程序信息:org.openqa.selenium.remote.RemoteWebDriver
功能[{browserAttachTimeout = 0,enablePersistentHover = true,ie.forceCreateProcessApi = false,ie.usePerProcessProxy = false,ignoreZoomSetting = false,handlesAlerts = true,version = 11,platform = WINDOWS,nativeEvents = true,ie.ensureCleanSession = true,elementScrollBehavior = 0,ie.browserCommandLineSwitches =,webdriver.remote.sessionid = 5daa42d6-5f04-46ac-821a-59dcb261edd1,requireWindowFocus = false,browserName = internet explorer, initialBrowserUrl = http:// localhost:27297 /,TakingScreenshot = true,javascriptEnabled = true,ignoreProtectedModeSettings = true,enableElementCacheCleanup = true,cssSelectorsEnabled = true,unexpectedAlertBehaviour = dismiss}
会话ID:5daa42d6-5f04-46ac-821a -59dcb261edd1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( DelegatingConstructorAccessorImpl.java:45)
在java.lang.reflect.Constructor.newInstance(Constructor.java:408)
在org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
在org .oopenqa.selenium.remote .remote.RemoteWebDriver.findElement(RemoteWebDriver.java:352)
在org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:441)
在org.openqa.selenium.By $ ByCssSelector .findElement(By.java:426)
在org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:344)
在dashBoard_Automation.dashboardSerach.main(xxxx.java:86)
导致:org.openqa.selenium.remote.ScreenshotException:已拍摄屏幕截图
构建信息:version:'2.44.0',revision:'76d78cf',time:'2014-10-23 20:03:00'


解决方案

感谢您的回复



最后我发现有两个原因,为什么测试在IE 11失败。现在解决他们


  1. Windows更新 KB3025390 导致问题

  2. 添加了capabilities.setCapability(nativeEvents,false);

WebDriver测试不在IE11上运行


Currently working with selenium remote driver. execution is working fine with Chrome remote driver but not working with IE. IE browser is launched after that NoSuchElementException displayed

similar issue I found at below url, I implemented all the specified solutions still not working for me. NoSuchElementException is occurred during implementation of InternetExplorerDriver in Selenium WebDriver

Launched Selenium grid - hub using: (Machine A) :

java -jar selenium-server-standalone-2.44.0.jar -role hub  

Launched Selenium grid - node using: (Machine B) :

java -jar selenium-server-standalone-2.44.0.jar -role webdriver -hub http://xx.x.xx.xx:4444/grid/register -port 5566 -browser browserName="internet explorer",version=8.0,platform=WINDOWS -Dwebdriver.ie.driver=\\SeleniumDrivers\IEDriverServer.exe

Code in the test script.(Eclipse)

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setBrowserName("internet explorer");
capabilities.setPlatform(Platform.WINDOWS);             
capabilities.setCapability("ie.ensureCleanSession", true);    
capabilities.setCapability("forceCreateProcessApi", true);
capabilities.setCapability("ignoreProtectedModeSettings", true);
System.setProperty("webdriver.ie.driver", "\\SeleniumDrivers\\IEDriverServer.exe");
WebDriver driver = new RemoteWebDriver(new URL("http://MachineBIPAddress:5566/wd/hub"),capabilities);    

//example code.

driver.get("www.google.com");
driver.findElement(By.id("gbqfqw")).sendKeys("test");
driver.findElement(By.name("btnG")).click();

During the Execution:

IE browser is launched in Machine B and then error "org.openqa.selenium.NoSuchElementException:" displayed.


log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with css selector == a[class*='searchbtn'] (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 20.13 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'xxxxxxx', ip: 'xxx.xx.xx.xx', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_31'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.usePerProcessProxy=false, ignoreZoomSetting=false, handlesAlerts=true, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=true, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:27297/, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=true, enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 445a8c44-fb7c-4f05-8b5a-f025787ffea5
Command duration or timeout: 23.98 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:03:00'
System info: host: 'xxxxxx', ip: 'xx.x.xxx.xx', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_31'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities [{browserAttachTimeout=0, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.usePerProcessProxy=false, ignoreZoomSetting=false, handlesAlerts=true, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=true, elementScrollBehavior=0, ie.browserCommandLineSwitches=, webdriver.remote.sessionid=5daa42d6-5f04-46ac-821a-59dcb261edd1, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:27297/, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=true, enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 5daa42d6-5f04-46ac-821a-59dcb261edd1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
    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.findElementByCssSelector(RemoteWebDriver.java:441)
    at org.openqa.selenium.By$ByCssSelector.findElement(By.java:426)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:344)
    at dashBoard_Automation.dashboardSerach.main(xxxx.java:86)
Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:03:00'

解决方案

Thank you for the responses.

finally i found with two reasons why tests are failed in IE 11. Now resolved them

  1. Windows update KB3025390 causing the issue
  2. Added capabilities.setCapability("nativeEvents",false);

WebDriver test not running on IE11

这篇关于Selenium Remote Driver - 执行InternetExplorerDriver时发生NoSuchElementException异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆