量角器点击在 IE 中不起作用,但在 chrome 中有效

Protractor click not working in IE, but works in chrome

我有一些 div 看起来像这样

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

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

IE 11 是否支持 on-tap

我尝试更改为 ng-click="foo(param)" 但没有效果。

有了自动化的 IE 浏览器,它总是很特别。试试点击 link :

var elm = element(by.css("div.someClassyStuff"));
browser.executeScript("arguments[0].click();", elm.getWebElement());

我遇到过这样的问题,在 firefox 中点击不会点击,但在 chrome 中会点击。解决方法是在 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(); 

我用来点击棘手的东西的另一件事是使用 expected conditions 来点击某些东西

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

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

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

Software Quality Assurance & Testing 处找到解决方案。

我在 IE 上遇到了类似的问题,没有元素可以接收到点击。原因是我在 Windows 中将我的 全局缩放设置为 >100%(桌面 > rclick > 显示设置)。显然这导致 IEDriver 点击了错误的坐标。

这个问题没有说明是否可以点击其他元素,但这可能是其他有类似问题的人的答案。