当前位置: 首页 > 知识库问答 >
问题:

Protractor click在IE中不起作用,但在chrome中起作用

龙越彬
2023-03-14

我有一些看起来像这样的div

<div class="someClassyStuff" on-tap="foo(param)"> Text </div>

在量角器中,我们搜索并找到div元素,检查文本是否符合我们的期望,然后对该元素调用click()。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。

IE 11是否支持点击

我尝试更改为ng-Click="foo(参数)",但没有效果。


共有3个答案

赵英资
2023-03-14

我遇到过这样的问题,点击不会在火狐中点击,但它会在铬中点击。解决方法是在执行在chrome中起作用的初始单击后添加鼠标向下和鼠标抬起操作。

browser.getCapabilities().then(function(cap){
    element(by.css("div.someClassyStuff")).click();
    if(cap.caps_.browserName == "ie"){
        browser.actions().mouseDown().mouseUp().perform();
    }
};

更新:

如果您还没有,您可以尝试其他想法:

(双击鼠标)

element(by.css("div.someClassyStuff")).click().click(); 

另一件我用来点击棘手事物的事情是使用预期条件来点击某物

// Wait for an element to be clickable then click it
global.waitAndClick = function(element, time, errMessage) {
  if(typeof(time) ==='undefined') time = 10000;
  var IsClickable = EC.elementToBeClickable(element);
  browser.wait(IsClickable, time, errMessage);
  return element.click();
};

waitAndClick(element(by.css("div.someClassyStuff")), 5000, "failed to click my elem");
汪修诚
2023-03-14

随着自动化IE浏览器,它总是一些特别的东西。尝试点按“通过javascript”链接:

var elm = element(by.css("div.someClassyStuff"));
browser.executeScript("arguments[0].click();", elm.getWebElement());
孟海
2023-03-14

我用这些能力解决了这个问题:

exports.config = {
    capabilities: {
        'browserName': 'internet explorer',
        'version': 11,
        'nativeEvents': false,
        'unexpectedAlertBehaviour': 'accept',
        'ignoreProtectedModeSettings': true,
        'enablePersistentHover': true,
        'disable-popup-blocking': true
    }
};

您可以在浏览器堆栈设置中使用相同的方法:

exports.config = {
    capabilities: {
        'browser' : 'ie',
        'browserName': '',
        'browser_version' : '11',
        'os' : 'Windows',
        'os_version' : '7',
        'browserstack.user': 'XXX',
        'browserstack.key': 'XXX',
        'version': 11,
        'nativeEvents': false,
        'unexpectedAlertBehaviour': 'accept',
        'ignoreProtectedModeSettings': true,
        'enablePersistentHover': true,
        'disable-popup-blocking': true
    }
};

在软件质量保证中找到解决方案

 类似资料:
  • 问题内容: 这行不通,什么也没发生。我如何使其工作,我在做什么错? 问题答案: 问题在于,由于您使用事件处理程序的content属性,因此您的全局函数… 被…遮盖 …这是最近在Web Animations中引入的: 5.21接口扩展 由于DOM元素可能是动画的目标,因此Element 接口[ DOM4 ]扩展如下: 这允许以下类型的用法。 在获取事件处理程序的当前值的[步骤10]中说明了此行为:

  • 问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。

  • 问题内容: 由于某种原因,似乎响应JS无法正常工作。我正在IE 8中使用媒体查询来更改各种大小的监视器的背景图像。在IE 8中,没有背景,只有纯色。 代码如下: 媒体查询如下所示: 上面的代码在IE 8中无法工作是有原因的吗?我还应该尝试使用另一个JS来使IE 8 Media Queries工作吗? 注意:看来html5-shiv确实有效。我正在实时Web服务器上进行测试。 问题答案: 同样的问题

  • 问题内容: 我有以下功能 但是 在ie7中不起作用,那我该怎么办!我想将光标放在输入中! 谢谢 更新 很好的解决方案,谢谢,但是现在在opera中不起作用:( 问题答案: 对于IE,您需要使用settimeout函数,因为它很懒,例如: 对于opera,这可能会有所帮助:如何在opera文本框上的所需索引中设置焦点

  • 问题内容: 我试图在我的一个JavaScript程序中应用一个字符串。在Mozilla下它可以正常工作,但是当我在IE8中尝试时会显示错误。有人知道这是怎么回事吗?无论如何,我可以使其在IE中工作吗? 码: 错误显示: 问题答案: 添加以下代码以向字符串添加修剪功能。

  • 问题内容: 以下是我的JavaScript(mootools)代码: 在除IE之外的所有浏览器中,这都可以正常工作。但是在IE中,这会导致错误。我有IE8,因此在使用其JavaScript调试器时,我发现该对象没有导致错误的方法,因此正在提交表单。在Firefox(我使用Firebug发现)的情况下支持该方法。 有帮助吗? 问题答案: 在IE中,您可以使用 达到相同的结果。 为了不出错,您可以测试