Unstable code

已查看 61 次
跳至第一个未读帖子

dom...@computerlogy.com

未读,
2016年2月12日 05:32:012016/2/12
收件人 Selenium Users
Hi,

Why do I get errors sometimes and other times it works.

My code is simply this:
driver.findElement(By.xpath("//section[@id='objective']/dl/dd/ul/li[2]/p")).click();

Error:
org.openqa.selenium.WebDriverException: unknown error: Element is not clickable at point (557, 395). Other element would receive the click: <div class="page-loading show">...</div>
  (Session info: chrome=48.0.2564.109)
  (Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Mac OS X 10.10.5 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 96 milliseconds
Build info: version: '2.48.2', revision: '41bccdd', time: '2015-10-09 19:59:12'
System info: host: 'Dominics-MBP.lan', ip: '192.168.86.148', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.5', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=/var/folders/nr/y6074c2s69d4ycd9y2qq48j80000gn/T/.org.chromium.Chromium.b5sLVv}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=48.0.2564.109, platform=MAC, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 3dd6c336556c9f60a349e250bc8854fd
    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:422)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:647)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:326)
    at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:84)
    at SocialAdsTests.ClicksConversion1.testClicksConversions(ClicksConversion1.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)


saba. s

未读,
2016年2月12日 05:39:082016/2/12
收件人 seleniu...@googlegroups.com
Dominic, seems to be a timeout issue. have you used wait in your code? if not, use that either implicit or explicit( if needed)

org.openqa.selenium.WebDriverException: unknown error: Element is not clickable at point (557, 395). Other element would receive the click: <div class="page-loading show">...</div>

--
You received this message because you are subscribed to the Google Groups "Selenium Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to selenium-user...@googlegroups.com.
To post to this group, send email to seleniu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/selenium-users/38f32e4a-052a-4fb1-8057-d2cdd3f94ab5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--







Thanks,
Kanaga sabapathy.M.S.

dom...@computerlogy.com

未读,
2016年2月12日 05:43:362016/2/12
收件人 Selenium Users
Yes I use Thread.sleep(3000)

Nikhil Srivastava

未读,
2016年2月13日 10:36:512016/2/13
收件人 seleniu...@googlegroups.com
Hi Dominic,

Just increase the wait time little bit more. 

This is generally happens when element not attached with the page and Webdriver try to finds it. 

Thanks,
Nikhil

Anand Somani

未读,
2016年2月13日 11:20:302016/2/13
收件人 seleniu...@googlegroups.com
Error message directly pointing there is page-loading show image on top of other element. So you add explicit wait as below 

public void explicitWaitUntilInvisibilityOfPageLoader() {

try {

WebDriverWait wait = new WebDriverWait(driver, explicitWaitTimeout);

wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//div[@class='page-loading show']")));

} catch (TimeoutException e) {

Assert.fail("Unable to load Page Loading on Page due in " + explicitWaitTimeout + " sec due to Error : " + e.getMessage());

}

}


Thanks & Regards,
Anand Somani
Refer myBlogs: http://seleniumtestingguide.blogspot.in/


Anand Somani

未读,
2016年2月13日 11:23:482016/2/13
收件人 seleniu...@googlegroups.com
This error is not because element is not attached to DOM.
If element is not attached to DOM completely then you will get StaleElementReferenceException exception.

Thanks & Regards,
Anand Somani
Refer myBlogs: http://seleniumtestingguide.blogspot.in/
On 13 February 2016 at 21:05, Nikhil Srivastava <nikh...@gmail.com> wrote:

Nikhil Srivastava

未读,
2016年2月14日 00:41:032016/2/14
收件人 seleniu...@googlegroups.com
Yes, Anand you are correct. I was also saying same thing.

"This is generally happens when element not attached with the page and Webdriver try to finds it." (Because page was not loaded completely when webdriver was looking for Element).

Thanks anyways.

Regards,
Nikhil

dom...@computerlogy.com

未读,
2016年2月14日 02:28:422016/2/14
收件人 Selenium Users
Thanks Anand.  Up until now I have just been usuing Thread.sleep (20000)

Shawn Conlin

未读,
2016年2月14日 10:02:082016/2/14
收件人 Selenium Users
I recently encountered this error and was able to determine it was caused by a dropdown menu being triggered while attempting to click an item located just below it on the page. This was happening as a result of the screen resolution in use on the test machine, but was also related to the Selenium version. I rolled Selenium back from 2.51.1 to 2.45.0 the issue resolved. I haven't had a chance to follow up to figure out why the newer version is more resolution sensitive.
回复全部
回复作者
转发
0 个新帖子