3

我一直在为 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>     
4

7 回答 7

5

遇到同样的问题,点击不适用于我的 IE 8。我找到了一种解决方法,我使用 element.sendKeys("\n") 来执行点击(基本上我只需按按钮上的 enter)。不是很干净,但在修复错误之前它可以工作!

于 2011-04-12T09:42:29.153 回答
5

我几乎放弃了 WebDriver,因为我无法让 webelement 上的 click 方法起作用。但出于某种原因,我将 IE 缩放比例从 125% 更改为 100%,点击成功。不确定这是否是 WebDriver 的一个已知错误,但它几乎让我把它全部废弃,直到我找到解决方案。

于 2011-09-29T18:58:06.070 回答
4

我在 IE 8 中遇到了同样的问题,其中 WebDriver 无法单击被测 HTML 页面上的任何 href="" 标记

shessuky 提供的解决方案对我有用;即设置BOTH ignoreZoomSetting 和 nativeEvents 功能如下

  • caps.setCapability("ignoreZoomSetting", true);
  • caps.setCapability("nativeEvents",false);
于 2014-07-11T20:39:29.263 回答
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);

希望这可以帮助你;

于 2014-01-29T14:51:45.433 回答
0

根据您的 HTML,id_ctl0_pageheader_login. 它可以动态生成并且可能会改变。

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

于 2011-01-19T20:43:44.553 回答
0

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

Selenium 2.0b3 IE WebDriver,点击不触发

于 2011-04-07T02:16:42.193 回答
0

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

请参阅我在Selenium 2.0b3 IE WebDriver上类似 StackOverflow 问题的完整背景答案https://stackoverflow.com/a/31397650/115704 ,单击未触发。

于 2015-07-14T04:31:21.647 回答