{"action":"created","issue":{"url":"https://api.github.com/repos/DevExpress/testcafe/issues/2777","repository_url":"https://api.github.com/repos/DevExpress/testcafe","labels_url":"https://api.github.com/repos/DevExpress/testcafe/issues/2777/labels{/name}","comments_url":"https://api.github.com/repos/DevExpress/testcafe/issues/2777/comments","events_url":"https://api.github.com/repos/DevExpress/testcafe/issues/2777/events","html_url":"https://github.com/DevExpress/testcafe/issues/2777","id":354337206,"node_id":"MDU6SXNzdWUzNTQzMzcyMDY=","number":2777,"title":"Drag action is executed on wrong element if element has float position value in IE","user":{"login":"AlexKamaev","id":1678902,"node_id":"MDQ6VXNlcjE2Nzg5MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/1678902?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKamaev","html_url":"https://github.com/AlexKamaev","followers_url":"https://api.github.com/users/AlexKamaev/followers","following_url":"https://api.github.com/users/AlexKamaev/following{/other_user}","gists_url":"https://api.github.com/users/AlexKamaev/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKamaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKamaev/subscriptions","organizations_url":"https://api.github.com/users/AlexKamaev/orgs","repos_url":"https://api.github.com/users/AlexKamaev/repos","events_url":"https://api.github.com/users/AlexKamaev/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKamaev/received_events","type":"User","site_admin":false},"labels":[{"id":243973514,"node_id":"MDU6TGFiZWwyNDM5NzM1MTQ=","url":"https://api.github.com/repos/DevExpress/testcafe/labels/AREA:%20client","name":"AREA: client","color":"fef2c0","default":false},{"id":266182562,"node_id":"MDU6TGFiZWwyNjYxODI1NjI=","url":"https://api.github.com/repos/DevExpress/testcafe/labels/BROWSER:%20IE11","name":"BROWSER: IE11","color":"d4c5f9","default":false},{"id":302804159,"node_id":"MDU6TGFiZWwzMDI4MDQxNTk=","url":"https://api.github.com/repos/DevExpress/testcafe/labels/SYSTEM:%20automations","name":"SYSTEM: automations","color":"bfe5bf","default":false},{"id":201866359,"node_id":"MDU6TGFiZWwyMDE4NjYzNTk=","url":"https://api.github.com/repos/DevExpress/testcafe/labels/TYPE:%20bug","name":"TYPE: bug","color":"f7c6c7","default":false}],"state":"open","locked":false,"assignee":{"login":"AlexKamaev","id":1678902,"node_id":"MDQ6VXNlcjE2Nzg5MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/1678902?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKamaev","html_url":"https://github.com/AlexKamaev","followers_url":"https://api.github.com/users/AlexKamaev/followers","following_url":"https://api.github.com/users/AlexKamaev/following{/other_user}","gists_url":"https://api.github.com/users/AlexKamaev/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKamaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKamaev/subscriptions","organizations_url":"https://api.github.com/users/AlexKamaev/orgs","repos_url":"https://api.github.com/users/AlexKamaev/repos","events_url":"https://api.github.com/users/AlexKamaev/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKamaev/received_events","type":"User","site_admin":false},"assignees":[{"login":"AlexKamaev","id":1678902,"node_id":"MDQ6VXNlcjE2Nzg5MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/1678902?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKamaev","html_url":"https://github.com/AlexKamaev","followers_url":"https://api.github.com/users/AlexKamaev/followers","following_url":"https://api.github.com/users/AlexKamaev/following{/other_user}","gists_url":"https://api.github.com/users/AlexKamaev/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKamaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKamaev/subscriptions","organizations_url":"https://api.github.com/users/AlexKamaev/orgs","repos_url":"https://api.github.com/users/AlexKamaev/repos","events_url":"https://api.github.com/users/AlexKamaev/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKamaev/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/DevExpress/testcafe/milestones/10","html_url":"https://github.com/DevExpress/testcafe/milestone/10","labels_url":"https://api.github.com/repos/DevExpress/testcafe/milestones/10/labels","id":1607803,"node_id":"MDk6TWlsZXN0b25lMTYwNzgwMw==","number":10,"title":"Planned","description":"","creator":{"login":"inikulin","id":453071,"node_id":"MDQ6VXNlcjQ1MzA3MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/453071?v=4","gravatar_id":"","url":"https://api.github.com/users/inikulin","html_url":"https://github.com/inikulin","followers_url":"https://api.github.com/users/inikulin/followers","following_url":"https://api.github.com/users/inikulin/following{/other_user}","gists_url":"https://api.github.com/users/inikulin/gists{/gist_id}","starred_url":"https://api.github.com/users/inikulin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inikulin/subscriptions","organizations_url":"https://api.github.com/users/inikulin/orgs","repos_url":"https://api.github.com/users/inikulin/repos","events_url":"https://api.github.com/users/inikulin/events{/privacy}","received_events_url":"https://api.github.com/users/inikulin/received_events","type":"User","site_admin":false},"open_issues":107,"closed_issues":38,"state":"open","created_at":"2016-02-26T10:32:06Z","updated_at":"2018-08-27T14:15:41Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2018-08-27T14:15:12Z","updated_at":"2018-08-28T08:16:38Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Test page:\r\n```JS\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <title>Title</title>\r\n    <style>\r\n\r\n        #drag {\r\n            width: 5px;\r\n            height: 5px;\r\n            background-color: black;\r\n            position: absolute;\r\n            top: -50px;\r\n            left: -50px;\r\n        }\r\n        #parent {\r\n            width: 100px;\r\n            height: 100px;\r\n            background-color: red;\r\n            margin: 100px;\r\n            position: relative;\r\n        }\r\n\r\n        .child {\r\n            width: 10px;\r\n            height: 10px;\r\n            background-color: blue;\r\n            position: absolute;\r\n        }\r\n\r\n        #child1 {\r\n            top: 5.1px;\r\n            left: 5.1px;\r\n        }\r\n\r\n        #child2 {\r\n            top: 25.3px;\r\n            left: 25.3px;\r\n        }\r\n\r\n        #child3 {\r\n            top: 45.5px;\r\n            left: 45.5px;\r\n        }\r\n\r\n        #child4 {\r\n            top: 65.7px;\r\n            left: 65.7px;\r\n        }\r\n\r\n        .leaf {\r\n            width: 1px;\r\n            height: 1px;\r\n            background-color: white;\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n        }\r\n    </style>\r\n</head>\r\n<body>\r\n    <div id=\"parent\">\r\n        <div id=\"child1\" class=\"child\">\r\n            <div id=\"leaf1\" class=\"leaf\"></div>\r\n            <div id=\"drag\"></div>\r\n        </div>\r\n\r\n        <div id=\"child2\" class=\"child\">\r\n            <div id=\"leaf2\" class=\"leaf\"></div>\r\n        </div>\r\n\r\n        <div id=\"child3\" class=\"child\">\r\n            <div id=\"leaf3\" class=\"leaf\"></div>\r\n        </div>\r\n\r\n        <div id=\"child4\" class=\"child\">\r\n            <div id=\"leaf4\" class=\"leaf\"></div>\r\n        </div>\r\n    </div>\r\n    <div id=\"result\"></div>\r\n    <script>\r\n        function log(e) {\r\n            document.querySelector('#result').innerHTML += e.currentTarget.id + ' ';\r\n        }\r\n\r\n        var divs = document.querySelectorAll('div');\r\n\r\n        for (var i = 0; i < divs.length; i++)\r\n            divs[i].addEventListener('click', log);\r\n    </script>\r\n</body>\r\n</html>\r\n```\r\n\r\nTest:\r\n```JS\r\ntest('drag', async t => {\r\n    await t\r\n        .drag('#drag', 50, 50, { offsetX: 0, offsetY: 0 })\r\n        .drag('#drag', 70, 70, { offsetX: 0, offsetY: 0 })\r\n        .drag('#drag', 90, 90, { offsetX: 0, offsetY: 0 })\r\n        .drag('#drag', 110, 110, { offsetX: 0, offsetY: 0 })\r\n        .expect(result.innerText).contains('leaf1 child1 parent leaf2 child2 parent leaf3 child3 parent leaf4 child4 parent');\r\n});\r\n```\r\nThe test fails because of rounding in `#child3` and `#child4` elements only in IE"},"comment":{"url":"https://api.github.com/repos/DevExpress/testcafe/issues/comments/416493280","html_url":"https://github.com/DevExpress/testcafe/issues/2777#issuecomment-416493280","issue_url":"https://api.github.com/repos/DevExpress/testcafe/issues/2777","id":416493280,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNjQ5MzI4MA==","user":{"login":"AlexKamaev","id":1678902,"node_id":"MDQ6VXNlcjE2Nzg5MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/1678902?v=4","gravatar_id":"","url":"https://api.github.com/users/AlexKamaev","html_url":"https://github.com/AlexKamaev","followers_url":"https://api.github.com/users/AlexKamaev/followers","following_url":"https://api.github.com/users/AlexKamaev/following{/other_user}","gists_url":"https://api.github.com/users/AlexKamaev/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexKamaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexKamaev/subscriptions","organizations_url":"https://api.github.com/users/AlexKamaev/orgs","repos_url":"https://api.github.com/users/AlexKamaev/repos","events_url":"https://api.github.com/users/AlexKamaev/events{/privacy}","received_events_url":"https://api.github.com/users/AlexKamaev/received_events","type":"User","site_admin":false},"created_at":"2018-08-28T08:16:38Z","updated_at":"2018-08-28T08:16:38Z","author_association":"CONTRIBUTOR","body":"One more failing test specific only for IE\r\n\r\n```JS\r\nconst appendMouseOver = ClientFunction(() => {\r\n    var leaves = document.querySelectorAll('.leaf');\r\n\r\n    for (var i = 0; i < leaves.length; i++)\r\n        leaves[i].addEventListener('mouseover', window.log);\r\n});\r\n\r\ntest('hover', async t => {\r\n    await appendMouseOver();\r\n\r\n    await t\r\n        .hover('#leaf1', { offsetX: 20, offsetY: 20 })\r\n        .expect(result.innerText).contains('leaf2')\r\n        .hover('#leaf2', { offsetX: 20, offsetY: 20 })\r\n        .expect(result.innerText).contains('leaf3')\r\n        .hover('#leaf3', { offsetX: 20, offsetY: 20 })\r\n        .expect(result.innerText).contains('leaf4');\r\n});\r\n\r\n```"}}
{"actor":{"display_login":"AlexKamaev"}}