selenium webdriver IE按钮问题

时间:2011-01-19 15:36:22

标签: internet-explorer selenium webdriver selenium-webdriver

我一直在编写我的FF脚本,但希望他们也可以在其他浏览器上运行很少的工作,但似乎IE驱动程序有按钮问题?

我在按钮上有一个简单的webelement.click(),它不会抛出错误但不会单击按钮。在FF它罚款。我可以获取文本,获取值,所以我知道find语句没问题,它只是不会点击它。

想法或帮助会很棒

刚做

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

HTML - 控件上有3个按钮我现在只对登录

感兴趣
<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>     

7 个答案:

答案 0 :(得分:5)

遇到同样的问题,点击不适用于我的IE 8。 我找到了一个解决方法,我在其中执行了element.sendKeys(“\ n”)来执行单击(基本上我只需按下按钮上的Enter键)。 不是很干净,但它一直有效,直到修复bug!

答案 1 :(得分:5)

我几乎放弃了WebDriver,因为我无法在webelement上获得click方法。但由于某种原因,我将IE缩放从125%更改为100%并且点击工作。不确定这是否是WebDriver的已知错误,但它几乎让我一起废弃它,直到找到解决方案。

答案 2 :(得分:4)

我遇到了与IE 8相同的问题,其中WebDriver无法点击测试的HTML页面上的任何href =“”标签

shessuky提供的解决方案为我工作;这是设置 BOTH ignoreZoomSetting和nativeEvents功能,如下所示

  • caps.setCapability(“ignoreZoomSetting”,true);
  • caps.setCapability( “nativeEvents”,假);

答案 3 :(得分:1)

我认为您可能需要使用参数org.openqa.selenium.Capabilities来实例化InternetExplorerDriver(),如下所示:

    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);

希望这可以帮助你;

答案 4 :(得分:0)

根据您的HTML,id_ctl0_pageheader_login。它可以动态生成,也可以更改。

您可以尝试找到By.linkText("Login")By.className("loginModal")

答案 5 :(得分:0)

这可能与加载速度有关,请尝试添加ImplicitlyWait

Selenium 2.0b3 IE WebDriver, Click not firing

答案 6 :(得分:0)

如果您在IE11中运行自动Selenium测试,并在触摸屏显示器(例如Windows 8触摸笔记本电脑)上打开浏览器窗口,请尝试在非触摸屏中打开浏览器窗口运行测试。
原始的.click()方法应该可以在没有所有代码解决方法的情况下正常工作。

请参阅https://stackoverflow.com/a/31397650/115704上类似的StackOverflow问题的完整背景答案Selenium 2.0b3 IE WebDriver, Click not firing