3

私はdivこのように見えるいくつかを持っています

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

分度器内で要素を検索して見つけ、divテキストが期待どおりであることを確認してから、その要素を呼び出しますclick()。テストは Chrome で正常に動作しますが、IE ではクリックが発生しないかのように..テストが中断されます。

IE 11 はサポートしていon-tapますか?

に変更しようとしましng-click="foo(param)"たが、効果がありません。

4

4 に答える 4

4

これらの機能でこの問題を解決しました:

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で解決策を見つけました。

于 2015-11-04T13:41:53.670 に答える
2

自動化された IE ブラウザーでは、常に何か特別なものになります。「javascript経由」のリンクをクリックしてみてください:

var elm = element(by.css("div.someClassyStuff"));
browser.executeScript("arguments[0].click();", elm.getWebElement());
于 2015-09-02T03:24:09.887 に答える
1

クリックがFirefoxではクリックされないが、クロムではクリックされるというこのような問題がありました。回避策は、クロムで機能する最初のクリックを行った後に、マウスダウンとマウスアップのアクションを追加することでした。

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

クリックするのが難しいもので私が使用したもう1つのことは、予想される条件を使用して何かをクリックすることです

// 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");
于 2015-09-10T21:11:19.123 に答える