Skip to content
This repository has been archived by the owner on Nov 29, 2018. It is now read-only.

Firefox 23+ Click() does not work if display settings is different from 100% #6112

Closed
lukeis opened this issue Mar 4, 2016 · 128 comments
Closed

Comments

@lukeis
Copy link
Member

lukeis commented Mar 4, 2016

Originally reported on Google Code with ID 6112

What steps will reproduce the problem?
1.Have nuget reference to WebDriver 2.35 and WebDriver.Support 2.35
2.Simple test that hits http://www.google.ca/
3.Try to click on the Signin button on the Google home page

What is the expected output? What do you see instead?
Expected to see the "sign in" button clicked and the Google login screen show up

Actual:
Button not clicked. 

Selenium version:2.35
OS:Windows 7
Browser:Firefox 
Browser version:23

There is the sample I made,

        [Test]
        public void Selenium235Test()
        {
            IWebDriver driver = new FirefoxDriver();
            driver.Navigate().GoToUrl("http://www.google.ca/");
            var signin = driver.FindElement(By.ClassName("gbit"));
            signin.Click();
        }

Reported by gavinwu.iQ on 2013-08-15 19:57:26

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

It does work: http://screencast.com/t/IfXR9vgg8sG

Please send questions "why my scenario does not work then?" to the selenium user list
[1]

[1] https://groups.google.com/forum/#!forum/selenium-users

Reported by barancev on 2013-08-16 13:42:04

  • Status changed: Invalid
  • Labels added: Browser-Firefox
  • Labels removed: Status-Untriaged

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Definitely happens with the .Net driver. WITH 2.35 but not with 2.33 

Simple repro on windows 7. Start Powershell and type the following

Add-Type -path  [YOUR PATH TO selenium-dotnet-2.35.0]\net40\WebDriver.dll

Then paste this: 

$driver = New-Object -TypeName OpenQA.Selenium.firefox.firefoxdriver              

$driver.Navigate().GoToUrl("http://www.google.ca/")
$signin = $driver.FindElement([OpenQA.Selenium.By]::ClassName("gbit"))
$signin.Click()

But if have 2.33 type 
Add-Type -path  [YOUR PATH TO selenium-dotnet-2.33.0]\net40\WebDriver.dll

and then paste same text it works. 


Reported by jhoneill@waitrose.com on 2013-08-19 14:55:57

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

http://screencast.com/t/AT5UiDXLS3X

Reported by barancev on 2013-08-19 19:32:07

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Barancev, your screen capture indicates that you are using net35 where as jhone is using
net40

Reported by gavinwu.iQ on 2013-08-19 21:37:04

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

http://screencast.com/t/u1olsHpOQ

Reported by barancev on 2013-08-20 09:03:17

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

And please explain what do you mean by "click does not work" -- do you have any error
messages?

Reported by barancev on 2013-08-20 09:12:17

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

No error message. The script comes back as if the button has been clicked. 
In some pages (not google) I can work round by sending a new line character to click
a button or a space to select a radio button. 

Reported by jhoneill@waitrose.com on 2013-08-20 13:11:28

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Well, you have to create a convincing sample :)
I can't reproduce the issue following your directions.

Reported by barancev on 2013-08-20 16:39:20

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

If you don't mind the extra time to try to reproduce this issue I can list out my exact
setup for you to copy.

I am running,
-Window 7 enterprise edition, Service pack 1
-Microsoft visual studio 2010 professional version 4.5.50709 SP1Rel with resharper
7.1
-C#
-Nunit 2.6.2
-Selenium WebDriver Support Classes 2.35.0
-Selenium webDriver 2.35.0
-Exact site "http://www.google.ca/?gws_rd=cr"


Reported by gavinwu.iQ on 2013-08-20 17:24:16

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

It would be joy for me to be able to reproduce the issue.
But I can't. Sorry. You see my screenshots. It just works.

James, any ideas, you are a better "dotneter" than me?
What part of the env can cause the issue?

Reported by barancev on 2013-08-20 20:37:06

  • Status changed: NeedsClarification

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I have a similar problem. The click() method does not work reliably.
I am using
- Windows 7 enterprise
- Firefox 23.0.1
- Java
- Selenium 2.35.0

Before upgrading from to Firefox 23.0.1 we were using selenium 2.32 and all our tests
were working. After upgrade to Firefox 23.0.1 we had to upgrade to Selenium 2.35.0
to get the tests back to work. But now the clicks on buttons fail sporadically.

As they fail sporadically, I am not really able to provide a sample.

Reported by dirk.wenke73 on 2013-08-21 07:18:35

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

To catch an intermittent issue you can create a scenario that runs in a loop on a sample
page, and fails sometimes.

Unfortunately, to fix an issue we have to reproduce it first :)

Reported by barancev on 2013-08-21 08:31:12

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I was not able up to now to reproduce the problem with a sample page.
But what I can already say is that it seems to be some kind of timing issue.

What I do in my testcase is the following (simplified):

List<WebElement> links = getDriver().findElements(By.tagName("a"));
links.get(1).click(); //click on the second link item

If I run the testcase, the link is found but the click does not trigger the navigation
to the next page.
If I run the test in debug mode and set a breakpoint directly before the link is clicked,
it will work.

Reported by dirk.wenke73 on 2013-08-21 10:55:48

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Possible causes of the click failure:
1) the element's onClick handler is not ready yet,
2) element was moving and (if you use native events) selenium clicks in the position
where the element was "a second before"
3) element is behind some other moving element
4) something else

Until we reproduce the issue we can't debug it and detect the actual reason of the
click failure.

Reported by barancev on 2013-08-21 13:06:03

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I have a similar problem. The click() does not scroll to the element automatically .
There is a very long list of links on page and when I need to click on the link which
is not visible - I get No such element exception
I am using
- Windows 7 
- Firefox 23.0.1
- .Net 4.5
- Selenium 2.35.0

It works fine with FF 21 and WebDriver 3.2

Reported by tmkhodko on 2013-08-21 15:29:56


- _Attachment: screen1.png
![screen1.png](https://storage.googleapis.com/google-code-attachments/selenium/issue-6112/comment-15/screen1.png)_

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

1) the element's onClick handler is not ready yet,
2) element was moving and (if you use native events) selenium clicks in the position
where the element was "a second before"

I don't think it is either of these because (a) it would have effected the old build,
and (b) I can wait for a long time between each step. 

3) element is behind some other moving element
Possibly but that would have happened in the old build too. 

4) something else
Looks most likely :-(

Reported by jhoneill@waitrose.com on 2013-08-21 16:00:46

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

The click() fails for me (no error, script assumes it clicked successfully) during debug.
I waited for about 5seconds after I see the Google home page is ready for use, then
I execute the click on the "sign in" button.

I have asked my colleagues to check on their windows 8 + visual studio 2012 (I have
windows 7, vs2010) and they are running into the same issue with selenium 2.35 and
firefox 23.0.1 (I opened the ticket with firefox 23.0 but firefox have 23.0.1 now)

Reported by gavinwu.iQ on 2013-08-21 16:34:00

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I am also having the same issue. Click() fails for me. No error message. 
I have a a popup with a Sign In button. Calling click dismisses the dialog, BUT doesn't
fire the onclick.
Windows 7
Firefox 23.0.1
<dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.35.0</version>
    </dependency>

Reported by jbkolste on 2013-08-21 21:35:14

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Confirmed on Windows 8, VS2012, WebDriver 2.35.0.0, Firefox 23.0.1, .NET Framework 4.5.

Reported by james.russel.jones on 2013-08-21 21:40:45

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I have the same issue. As far as I can tell it appears to be unique to Firefox 23 --
not Selenium 2.35. I started seeing this issue with Selenium 2.31 and continued to
see it after upgrading to 2.35.

Using debugging, I set a breakpoint right before and after the click -- and made the
click manually in Firefox -- which works.

Versions: Windows 8, Firefox 23.0.1, Selenium 2.35.0 & Selenium 2.31.0


Reported by aaronpowers on 2013-08-22 00:21:29

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Also, I've been using Selenium Java (not .net).

Reported by aaronpowers on 2013-08-22 00:24:45

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Reported by james.h.evans.jr on 2013-08-22 11:13:08

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

It's very grievously to hear your complains, but unless we get a reproduction scenario
we can't fix the issue.

Reported by barancev on 2013-08-22 11:22:39

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Driver does not scroll jsp scrollbar automatically. For example, page http://tympanus.net/Tutorials/ScrollbarVisibility/
I need to click on article, that currently is not visible:

        public void Test()
        {
            Driver.driver.Navigate().GoToUrl("http://tympanus.net/Tutorials/ScrollbarVisibility/");
            Driver.driver.FindElement(By.CssSelector("a[href*='http://tympanus.net/codrops/2011/08/30/automatic-image-montage/']")).Click();
}

Test fails with error:OpenQA.Selenium.ElementNotVisibleException : Element is not currently
visible and so may not be interacted with

- Windows 7 
- Firefox 21/Firefox 23
- .Net 4.5
- Selenium 2.35.0

P.S. Test passes with WebDriver 2.32

Reported by tmkhodko on 2013-08-22 14:49:53

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I can confirm this issue still exists.

As recorded in post #51, it is related to the css - overflow:hidden. Where this css
is set against an element, webdriver can only see the elements that are visible on
screen. The elements off screen cannot be clicked and the text cannot be obtained.
Changing the css value to overflow:auto fixes it and proves this to be the problem.


This issue did not exist in earlier versions i.e. 2.24.0 but has existed in later versions
i.e. 2.37.0. 

Please can this be reopened.

Reported by bekkiandkeith on 2014-06-05 20:54:46

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

All issues realed to overflow and partially hidden elements are not related to this
one :)

What I need to get is independent confirmation that
"Click is still failing when the display settings is at anything other than 100%"
(that is click works with display setting 100% and does not work with other settings)

Reported by barancev on 2014-06-06 06:26:45

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I suspect this may be why people think this issue is not fixed :-) That issue is also
"Firefox 23 and Selenium 2.35. Click() does not work ".

I'll raise a new issue for the overflow: hidden issue if I can't find one.

Reported by bekkiandkeith on 2014-06-06 07:41:45

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Reported by barancev on 2014-06-06 08:21:03

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

For anyone interested, the overflow: hidden issue is raised as issue 7461.

Reported by bekkiandkeith on 2014-06-10 08:55:18

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I am also facing the same issue
I am using FF version 18, Selenium version 2.41 and C#.
Display setting is 100%
Click() not working on links.

Reported by seluser1601 on 2014-07-30 09:42:15

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

The fix was released in 2.42

Reported by barancev on 2014-07-30 09:59:51

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

This bug persist on selenium-server-standalone-2.42.2

Reported by calbertts on 2014-08-12 22:09:53

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

This was still a problem for me with FF32 & Selenium 2.43. It seemed to be failing for
links with a hover state, so I solved the problem by hovering first (using Actions
MoveToElement) and then clicking.

Reported by jengerth on 2014-09-18 18:37:03

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

"This was still a problem for me with FF32 & Selenium 2.43. It seemed to be failing
for links with a hover state, so I solved the problem by hovering first (using Actions
MoveToElement) and then clicking."

Yeah, I am experiencing the same issue with elements that have hover state with FF32
and ruby gem 'selenium-webdriver' -v 2.43.0. 

Basically I have a list of elements in a table. I am able to store these as selenium
elements in a ruby array. I then run through the array using the Click() command. 

The issue is that I can not click the last element which requires scrolling down the
table despite the element existing as a selenium element.

Windows 7
FF32
Ruby: selenium-webdriver 2.43.0


Reported by mpatterson55863 on 2014-10-21 17:33:39

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I am having this issue on iOS where click() works sometimes and other times it does
not. Since iOS does NOT have the option to set display settings to 100% I have no workaround
thus  I am blocked right now in my test creation.

Can this be reopened and addressed?

Thanks

Reported by 3DeeEdie on 2014-10-24 21:16:49

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Who closed this? I have this issue on FF33 and Selenium(driver) 2.43.1. Since, I'm under
Linux, not M$ settings can help. I tried all tips mentioned here, and none of that
worked. What now?

Reported by flesnablizna on 2014-11-25 16:07:51

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Now to provide a complete executable scenario and a complete sample page to reproduce
the issue :)

Reported by barancev on 2014-11-25 18:20:45

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

It's like dirk.wen...@gmail.com mentioned in #13. Timing problem. In debug, or if I
put at least 4 (funny, 3 sec is not enough!) sec sleep before the click, it works.
If I don't, the click is not executed.
I don't know how to create this whole scenario, people, help me out with the reproduction
of this problem. I'm testing it under Java/Linux - hard to paste here the whole system
sites and calls. Driver 2.44 won't fix it:(

Reported by flesnablizna on 2014-12-02 19:56:09

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Actions actions = new Actions(driver);

actions.click(driver.findElement(By.id("your_id"))).perform();

Try this one.. this might help..

Reported by rahuldas90 on 2014-12-18 05:53:22

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

>> (124) Rahulda,

I tried every solution in this forum. Even your last did not work for me. In debug
mode, when I use step-by-step, it worked, but in normal run, there is no go for me.
Thx a lot.

If anybody has this problem, use normal click in for-loop (like 20), and put some sleep
between each click. That will work for sure, but it will take more time...

Reported by flesnablizna on 2015-01-19 17:40:03

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I have found a solution for this in Firefox using the Node bindings. This method executes
JavaScript within the browser, selecting the <SELECT> and then changing the selectedIndex
value to a number.

var optionNumber = 5;
var testId = 'countries';                                               browser.driver.executeScript("document.getElementById('"
+testId+ "').selectedIndex = " + optionNumber + ";");

This will chose the 5th option of an element with the testId of 'countries'

Reported by WyndhamQA on 2015-04-08 16:54:44

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Hi, im using firefox ESR 31.6 and selenium 2.45 on .net 4.5. i'm having the same issue
as everyone else. i have 3 scenarios all using the exact same test steps. strangely
one of the scenarios passes while the other 2 fail (fail on not loading the page because
the button wasn't clicked) even though they all use the exact same code. I'm wondering
if any one has found a proper solution to this yet? i added a thread.sleep(1000) before
the button.click which fixes my issue. but i have 1000's of tests to be run and a second
here and there all adds up. any proper solutions yet?

Reported by chrisdoh21 on 2015-04-10 10:13:47

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I am having the same problem with both firefox (31) and chrome (41) using selenium 2.44.
 The same scripts that run fine on Linux fail to push buttons when run on Windows.
  I have checked the size and turned off enable_native_events.    Waits work, but since
the test is almost entirely button clicks, putting browser.sleep(500) in front of every
button click seems extremely excessive  (but also seems to be the only thing that makes
any difference). 

Reported by claudia.s.bowman on 2015-04-29 17:11:31

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

>> Wyndha...@gmail.com

We were talking about clicking a button (html button), not selecting some options...

Reported by flesnablizna on 2015-04-30 09:47:23

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

I like the status of this bug - fixed 2014:)

Reported by flesnablizna on 2015-04-30 09:48:06

@lukeis
Copy link
Member Author

lukeis commented Mar 4, 2016

Reported by luke.semerau on 2015-09-17 18:17:47

  • Labels added: Restrict-AddIssueComment-Commit

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant