selenium webdriver IE button issue

2019-03-21 21:25发布

问题:

I have been writing my scripts for FF but was hoping with little work they would also run on the other browsers but it seems IE driver has button issues?

I have a simple webelement.click() on a button that does not throw an error but does not click the button. in FF its fine. I can get text, get value so I know the find statement is ok it just will not click it.

thoughts or help would be great

Just doing

WebElement element;
element = driver.findElement(By.id("pageheader_login"));
element.click();

HTML - The control has 3 buttons on it I am only interested for now with the login

<div id="_ctl0_pageheader_navcontainer">
  <div id="phwelcome">

    <br class="clear" />
  </div>
  <span id="navtext">

    <a id="_ctl0_pageheader_lnkRegister" class="logichref" 
       href="http://Register/1">Register Today</a>
    <label id="_ctl0_pageheader_lblRegisterBar" class="barhide">| </label>

    <a id="_ctl0_pageheader_customerconnection" class="logichref" 
       href="http://test.com" target="_blank">Help & Training</a>
    <label class="bar">| </label>
    <a class="logichref" href="http://test.aspx"
       onmouseover="window.status='';return(true);" 
       onmouseout="window.status='';return(false);"
       target="_blank">What's New</a> 
    <label class="bar">| </label>
    <a id="_ctl0_pageheader_login" class="lbOn loginModal" 
       href="http://test/loginlightbox.aspx">Login</a>
  </span>
</div>     

回答1:

Got the same problem, click does not work with my IE 8. I found a workaround where I do a element.sendKeys("\n") to perform the click (basically I just press enter on the button). Not very clean but it works until the bug is fixed!



回答2:

I almost gave up on WebDriver as I couldn't get the click method on webelement to function. But for some reason I changed my IE zoom from 125% to 100% and the click worked. Not sure if this is a known bug with WebDriver but it almost made me scrap it all together until I found a solution.



回答3:

I have faced the same issue with IE 8 where the WebDriver was unable to click on any a href="" tag on the HTML page under test

The solution shessuky provided worked for me; That is setting BOTH ignoreZoomSetting and nativeEvents capabilities as follows

  • caps.setCapability("ignoreZoomSetting", true);
  • caps.setCapability("nativeEvents",false);


回答4:

I think you may have to instantiate InternetExplorerDriver() using the parameter org.openqa.selenium.Capabilities as follows :

    DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
    caps.setCapability("ignoreZoomSetting", true);

    // Setting attribute nativeEvents to false enable click button in IE
    caps.setCapability("nativeEvents",false);
    WebDriver driver = new  InternetExplorerDriver(caps);

Hope this may help you;



回答5:

According to your HTML, the id is _ctl0_pageheader_login. It can be generated dynamically and may change.

You can try locating By.linkText("Login") or By.className("loginModal")



回答6:

It might be something to do with the load speed, try adding an ImplicitlyWait

Selenium 2.0b3 IE WebDriver, Click not firing



回答7:

If you're running an automated Selenium test in IE11 with the browser window open on a touch screen monitor (e.g. Windows 8 touch laptop), try running the test with the browser window open in a non-touch screen.
The original .click() method should work fine without all the code workarounds.

See my full background answer https://stackoverflow.com/a/31397650/115704 on a similar StackOverflow question at Selenium 2.0b3 IE WebDriver, Click not firing.