2011-01-19 108 views
3

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

我有一个简单的webelement.click()按钮,不会抛出错误,但不会点击按钮。在FF很好。我可以得到文本,获得价值,所以我知道查找声明是好的,它只是不会点击它。

想法或帮助将是巨大

只是做

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>  
+0

请问您是否发布了一段包含按钮的HTML? – 2011-01-19 16:17:05

+0

在原始文章 – ducati1212 2011-01-19 16:29:29

回答

5

得到了同样的问题,请点击不工作,我的IE 8. 我发现一个解决方法,我做了一个element.sendKeys(“\ n”)来执行点击(基本上我只是按下按钮进入)。 不是很干净,但它的工作,直到错误被修复!

0

根据你的HTML,id_ctl0_pageheader_login。它可以动态生成并可能更改。

您可以尝试定位By.linkText("Login")By.className("loginModal")

+0

中添加上面我可能会混淆尝试从我的代码中删除个人信息的问题。我试图通过.id = _ctl0_pageheader_login找到按钮,我没有看到变化,代码在FF中正常工作。我想,在我磕磕绊绊的时候,我试图通过其他任何可能的属性来发现它,但我很高兴再次尝试。这个调用也不会失败,所以它不像.id改变,我被扔进我的catch块。它运行良好,没有错误,只是从不点击链接。就像我上面说的,如果我做了gettext,它会返回正确的文本,所以它找到它 – ducati1212 2011-01-19 21:08:39

+0

它不存在于您发布的HTML中,但有没有可能是某些JavaScript被附加到登录链接? – 2011-01-20 15:38:16

5

我几乎放弃了WebDriver,因为我无法获得webelement上的click方法的功能。但由于某种原因,我将IE浏览器缩放比例从125%改为100%,点击工作。不知道这是否是WebDriver的一个已知错误,但它几乎让我把所有这些都放在一起,直到找到解决方案。

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

我也面临着同样的问题与IE 8,其中的webdriver未能就任何点击下测试A HREF =“”标记的HTML页面上

提供的解决方案shessuky为我工作;即设定BOTH ignoreZoomSetting和nativeEvents能力如下

  • caps.setCapability( “ignoreZoomSetting”,TRUE);
  • caps.setCapability(“nativeEvents”,false);
0

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

查看我的全部背景信息回答https://stackoverflow.com/a/31397650/115704关于类似的StackOverflow问题Selenium 2.0b3 IE WebDriver, Click not firing